문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
문자열 배열 words가 주어졌을 때, 배열에서 첫 번째 회문 문자열을 반환해라. 문자열이 없다면 빈 문자열 ""을 반환해라.
문자열은 앞으로 읽든 뒤로 읽든 같다면 회문이다.
#1
Input: words = ["abc", "car", "ada", "racecar", "cool"]
Output: "ada"
Explanation: 첫 번째 회문 문자열은 "ada"이다.
"racecar"도 회문이지만, 첫 번째가 아니다.
#2
Input: words = ["notapalindrome", "racecar"]
Output: "racecar"
Explanation: 첫 번째 회문은 오직 "racecar"뿐이다.
#3
Input: ["def", "ghi"]
Output: ""
Explanation: 회문 문자열이 없어서, 빈 문자열이 반환된다.
class Solution {
public String firstPalindrome(String[] words) {
for(String word : words){
if(isPalindrome(word)){
return word;
}
}
return "";
}
private boolean isPalindrome(String word){
int left = 0;
int right = word.length() - 1;
while(left < right){
if(word.charAt(left) != word.charAt(right)){
return false;
}
left++;
right--;
}
return true;
}
}