1. 전체 길이를 2로 나눈 몫의 전까지의 인덱스를 비교
문자열의 길이에서 인덱스 i만큼 빼고 거기에 -1 까지 해줘야 함
GooG
0123
인덱스 0과 3을 비교 (인덱스 0과 인덱스 4-0-1를 비교)
인덱스 1과 2를 비교 (인덱스 1과 인덱스 4-1-1을 비교)
public String solution(String input) {
int len = input.length();
String aCase = input.toLowerCase();
for (int i = 0; i < len / 2; i++) {
if (aCase.charAt(i) != aCase.charAt(len - 1 - i)) {
return "NO";
}
}
return "YES";
}
2. StringBuilder의 reverse를 이용 : equalsIgnoreCase
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String next = sc.next();
String reverse = new StringBuilder(next).reverse().toString();
if (next.equalsIgnoreCase(reverse)){
System.out.println("YES");
}else
System.out.println("NO");
}
3. replaceAll 정규식 사용
모두 알파벳 소문자로 바꾸고 a-z까지 아닌 것은 없앤다.
주어진 문자 : found7, time: study; Yduts; emit, 7Dnuof
public String solution(String input) {
String s = input.toLowerCase().replaceAll("[^a-z]", "");
String s1 = new StringBuilder(s).reverse().toString();
if (s.equals(s1)){
return "YES";
}else
return "NO";
}
}