
[문제]
A phrase is a palindrome if, after converting all uppercase letters into lowercase letters and removing all non-alphanumeric characters, it reads the same forward and backward. Alphanumeric characters include letters and numbers.
모든 대문자를 소문자로 변환하고, 모든 영숫자가 아닌 문자를 제거합니다. 이후 앞 뒤로 동일하게 읽히는 경우를 회문이라고 합니다. (영숫자 문자에는 문자와 숫자가 포합됩니다.)
문자열이 회문이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
class Solution {
public boolean isPalindrome(String s) {
char[] con = s.toCharArray();
// 1.
StringBuilder sb = new StringBuilder();
for (int i = 0; i < con.length; i++) {
int get = con[i] - '0';
if ((get >= 49 && get <= 74) || (get >= 17 && get <= 42) || (get >= 0 && get <= 9)) {
sb.append(con[i]);
}
}
// 2.
char[] rc = sb.toString().toLowerCase().toCharArray();
// 3.
int l = 0;
int r = rc.length - 1;
int flag = 0;
while (l < r) {
if (rc[l] == rc[r]) {
l++;
r--;
} else {
flag = 1;
break;
}
}
if (flag == 1) {
return false;
} else {
return true;
}
}
}
// 49 ~ 74, 17 ~ 42