[String] 회문문자열(palindrome)

0_0ni·2023년 2월 27일

회문문자열

앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력될 때, 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 "NO"를 출력하는 프로그램을 작성하세요.
단, 회문을 검사할 때 대소문자를 구분하지 않습니다.


제한사항

  • 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.

입출력 예

입력

gooG

출력

YES


풀이

문자열의 절반까지 돌면서 같은 문자열 찾기.
len/2 ---> i < len/2
대소문자 구분 없으므로 대문자 혹은 소문자로 통일 후 비교

0123
GOOG
ilen-i-1

구현

import java.util.*;
class Main {
	/// (1)
	public String solution(String str) {
		String answer = "YES";
       str = str.toUpperCase();
       int len = str.length();
       
       for (int i=0; i < len/2; i++) {
       	if(str.charAt(i) != str.charAt(len-i-1)) return "NO";
       }
       
       return answer;
   }
   
   /// (2)
	public String solution(String str) {
		String answer = "NO";
       String tmp = new StringBuilder(str).reverse().toString();
       
       // equals는 대소문자 구분하므로 IgnoreCase 추가해야 함.
       if ( str.equalsIgnoreCase(tmp) ) answer = "YES";
       
       return answer;
   }
   
   public static void main(String[] args) {
   	Main T = new Main();
       Scanner kb = new Scanner(System.in);
       String str = kb.next();
       System.out.print(T.solution(str));
   }
}

0개의 댓글