Palindrome?
문자열을 거꾸로 해도 원래의 문자열과 같은 문자열
public String longestPalindrome(String s) {
if (s.length() == 0) {
return "";
}
String result = "" + s.charAt(0);
for (int i = 0; i < s.length() - 1; i++) {
for (int j = s.length()-1; j > i; j--) {
String newStr = s.substring(i, j+1);
if (isPalindrome(newStr) && result.length() < newStr.length()) {
result = newStr;
if (s.equals(newStr)) {
return s;
}
}
}
}
return result;
}
private boolean isPalindrome(String s) {
for (int i = 0; i < s.length() / 2; i++) {
if (s.charAt(i) != s.charAt(s.length() - i - 1)) {
return false;
}
}
return true;
}
3중 for문이라 성능이 아쉽다.
특히 if (s.equals(newStr)) 은 땜빵...
개선이 필요하다.
(length 를 줄여가면서 str를 만들면 좋을 듯)
'프로그래밍 > Algorithm' 카테고리의 다른 글
MedianofTwoSortedArrays (0) | 2020.04.21 |
---|---|
코딩테스트 > 연습 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 (0) | 2019.04.13 |
Permutation vs Combination & BASEBALL GAME (0) | 2019.04.13 |
프로그래머스 > 완전탐색 > 소수찾기 (0) | 2019.04.11 |
프로그래머스 > 해시 > 프린터 (0) | 2019.03.30 |