레벨: 3
언어: 자바(Java)
해당 문제는 알고리즘이랑 자료구조 필요없이 루프돌리면 구할수 있는문제이다.
이 문제를 풀때 효율성에 몇번 걸렸었는데 주의할점이 있다.
풀이방법
1. 큰범위 부터 줄여나가는식 루프
2. 인덱스가 0인것 부터 시작하는 루프
3. 해당 문자열값 시작순서, 끝순서 문자값 구해서 계속비교 시도필요
(원래 reverse()사용하다가 효율성에서 계속걸렸습니다 쩝)
좋아요 받은 코드가 없어서 제가 작성한 것만 올립니다...
class Solution {
public int solution(String s) {
for(int i = s.length(); i > 0; i--) {
for(int j = 0; j+i <= s.length(); j++) {
if(isPalindrome(s, j, j+i-1)) return i;
}
}
return 0;
}
boolean isPalindrome(String value, int start, int end) {
while(start <= end) {
if(value.charAt(start++) != value.charAt(end--)) return false;
}
return true;
}
}