알고리즘/코테

[회문문자]

컵라면만두세트 2021. 10. 11. 19:13
문제
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.

출력
첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.

예시 입력 gooG
예시 출력 YES

1. charAt 이용 풀이 (주석)

2. indexOf 이용 풀이 

import java.util.ArrayList;
import java.util.Scanner;

public class test {
    // 중복 문자열 제거
    // 회문 찾기
    public String solution(String str){
        String answer = "YES";
        String tmp = str.toUpperCase();
        int len = str.length();
        // len = 4
       // 0 1 2 3
       // 0 = 3
       // 1 = 2
        for(int i =0; i<len/2; i++){
//            if(tmp.charAt(i) != tmp.charAt(len - i -1)) return "NO";

            /*
            *
            * indexOf 풀이
            * */
            if(tmp.indexOf(i) != tmp.indexOf(len - i -1)) return "NO";


        }
        return answer;
    }
    public static void main(String[] args){
        test T = new test();
        Scanner sc=new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.solution(str));


    }
}

 

3. StringBuilder().reverse().toString() -> 거꾸로 뒤집어서 사용 

    str.equlas(tmp) 같은지 비교

import java.util.Scanner;

public class 회문문자열 {
    public String soution(String str){
        String answer = "YES";
        // 0 1 1 0

        String tmp = new StringBuilder(str).reverse().toString();
        if(!str.equals(tmp)){
            return "NO";
        }
        return answer;
    }

    public static void main(String args[]){
        회문문자열 T = new 회문문자열();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.soution(str));

    }
}

'알고리즘 > 코테' 카테고리의 다른 글

순열연습, 조합연습 (알고리즘 JAVA)  (0) 2022.05.12
[유효한팰린드롬]  (0) 2021.11.23
[중복문자열제거]  (0) 2021.10.11
[특정문자뒤집기]  (0) 2021.10.11
[단어뒤집기] stringBuilder, reverse 사용  (0) 2021.10.11