algorithm

회문 문자열

juuuuuuun 2024. 4. 9. 18:35
7. 회문 문자열

설명

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

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

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

 

입력

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

 

출력

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

 

예시 입력 1 

gooG

 

예시 출력 1

YES

 

소스 코드 1

import java.util.Scanner;

public class Main {

    public static String solution(String str) {
        String answer;
        str = str.toLowerCase();
        char[] c = str.toCharArray();
        int lt = 0;
        int rt = str.length() - 1;
        boolean result = false;
        while (lt < rt) {
            if (c[lt] != c[rt]) {
                break;
            }
            lt++;
            rt--;
            if (lt >= rt) {
                result = true;
            }
        }

        if (result == true) {
            answer = "YES";
        } else {
            answer = "NO";
        }
        return answer;
    }

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

 

소스 코드 2

import java.util.Scanner;

public class Main {

    public static String solution(String str) {
        String answer = "YES";
        String str2 = new StringBuilder(str).reverse().toString();
        for (int i = 0; i < str.length(); i++) {
            if (!str.equalsIgnoreCase(str2)) {
                return "NO";
            }
        }
        return answer;
    }

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

 

equalsIgnoreCase()

 - 대소문자 구분 없이 비교한

'algorithm' 카테고리의 다른 글

숫자만 추출  (1) 2024.04.28
유효한 팰린드롬  (0) 2024.04.28
중복 문자 제거  (0) 2024.04.09
특정 문자 뒤집기  (0) 2024.04.09
단어 뒤집기 / ArrayList, StringBuilder  (1) 2024.04.09