알고리즘/JAVA

[JAVA] 7. 회문 문자열

수진보배 2021. 4. 14. 01:34
728x90

설명

 

앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.

문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.

단 회문을 검사할 때 대소문자를 구분하지 않습니다.

 

예시 입력 1 

gooG

 

예시 출력 1

YES

 

 

풀이

 

import java.util.Scanner;
  
public class Main {

  public static void main(String[] args){

	Scanner in=new Scanner(System.in);
   
   	String input = in.next().toLowerCase();
    String answer = "YES";
    
    int len = input.length();
    for( int i=0; i<len/2; i++ ) {
    
    // len - i -1 == 마지막 인덱스
    	if(input.charAt(i) != input.charAt(len-i-1)){
        	return "NO";
        }
    }
    
    System.out.println(answer);
  }
}

 

 

다른 풀이 - StringBuilder

 

import java.util.Scanner;
  
public class Main {

  public static void main(String[] args){

	Scanner in=new Scanner(System.in);
   
   	String input = in.next();
    String answer = "NO";
    
    String tmp = new StringBuilder(input).reverse().toString();
    
    // 대소문자 구문없이 같은지 확인
    if( input.equalsIgnoreCase(tmp)) {
    	return "YES";
    }
    
    System.out.println(answer);
  }
}
728x90