현재

7. 회문 문자열 본문

알고리즘/기타알고리즘문제

7. 회문 문자열

AAAge 2024. 4. 3. 20:35
설명

앞으로나 뒤로 읽어도 같으면 YES, 아니면 NO

예시 입력 1 

gooG

예시 출력 1

YES

 

<힌트 API>

더보기

toUpperCase() 

equalsIgnoreCase() : 대소문자를 무시하고 비교한다

new StringBuilder(str).reverse().toString() : 이런식으로 한번에 str 생성후 저장가능

<자체풀이>

더보기
import java.io.*;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);
        char inputs []  = sc.next().toCharArray();

        int lt = 0;
        int rt = inputs.length - 1;
        String answer = "";
        while(lt < rt){
            inputs[lt] = Character.toUpperCase(inputs[lt]);
            inputs[rt] = Character.toUpperCase(inputs[rt]);
            if(inputs[lt] == inputs[rt]){
                lt++;
                rt--;
                answer = "YES";
            } else {
                answer = "NO";
                break;
            }
        }

        System.out.println(answer);

        sc.close();
    }
}

<정답풀이>

더보기

1.

import java.util.*;
class Main {    
    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)) answer="NO";
        }
        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));
    }
}

 

2.

import java.util.*;
class Main {    
    public String solution(String str){
        String answer="NO";
        String tmp=new StringBuilder(str).reverse().toString();
        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));
    }
}