-
[Day8/9] 409. Longest Palindrome@StudY/.algorithm 2019. 2. 26. 10:12
initial solution
import java.util.Hashtable;
class Solution {
public int longestPalindrome(String s) {
int longestLength=0;
int tempCount=0;
Hashtable<Integer, Integer> letters = new Hashtable<Integer, Integer>();
for (int i=0; i<s.length(); i++) {
if(letters.containsKey(s.charAt(i)+0)) {
longestLength+=2;
letters.remove(s.charAt(i)+0);
} else {
letters.put(s.charAt(i)+0,0);
}
}
if (letters.isEmpty()) return longestLength;
return longestLength+1;
}
}
Runtime: 12 ms, faster than 26.03% of Java online submissions for Longest Palindrome.Memory Usage: 36.8 MB, less than 30.20% of Java online submissions forLongest Palindrome.Accepted 12 ms 36.8 MB java Refactor the initial solution
import java.util.ArrayList;
class Solution {
public int longestPalindrome(String s) {
int longestLength=0;
ArrayList letters = new ArrayList();
for (int i=0; i<s.length(); i++) {
if(letters.contains(s.charAt(i))) {
longestLength+=2;
letters.remove(letters.indexOf(s.charAt(i)));
} else {
letters.add(s.charAt(i));
}
}
if (letters.isEmpty()) return longestLength;
return longestLength+1;
}
}
Runtime: 8 ms, faster than 63.83% of Java online submissions for Longest Palindrome.Memory Usage: 37.2 MB, less than 8.72% of Java online submissions forLongest Palindrome.Accepted 8 ms 37.2 MB java import java.util.ArrayList;
class Solution {
public int longestPalindrome(String s) {
int longestLength=0;
int sumOfletters=0;
int[] letters = new int[128];
for (int i=0; i<s.length(); i++) {
if(letters[s.charAt(i)+0]==1) {
longestLength+=2;
letters[s.charAt(i)+0]=0;
} else {
letters[s.charAt(i)+0]=1;
}
}
for (int i=0; i<128; i++) {
sumOfletters+=letters[i];
}
if (sumOfletters==0) return longestLength;
return longestLength+1;
}
}
Runtime: 5 ms, faster than 89.90% of Java online submissions for Longest Palindrome.Memory Usage: 37.2 MB, less than 9.73% of Java online submissions forLongest Palindrome.Accepted 5 ms 37.2 MB java '@StudY > .algorithm' 카테고리의 다른 글
[Day11] 830. Positions of Large Groups (0) 2019.03.04 [Day10] 430. Flatten a Multilevel Doubly Linked List (0) 2019.02.28 [Day7] 876. Middle of the Linked List / 86. Partition List (LeetCode) (0) 2019.02.22 [Day6] 981. Time Based Key-Value Store (0) 2019.02.20 [Day4] 529. Minesweeper (0) 2019.02.18 댓글