유효한 팰린드롬 (replaceAll 정규식 이용)

Seungmin Lim·2022년 2월 5일
0

코딩문제연습

목록 보기
8/63

문제

나의풀이

class Main {
	    public String solution(String str) {
	    	String answer = "NO";
	    	str = str.toUpperCase().replaceAll("[^A-Z]", "");
	    	String a = new StringBuilder(str).reverse().toString();
	    	if(str.equals(a)) return "YES";
	    	return answer;
	    }
	
	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String str = kb.nextLine();
		System.out.println(T.solution(str));
	}
	
}

풀이방법

대,소문자 구분을 피하기 위해 toUpperCase로 전부 대문자로 바꿔준 후,
replaceAll("[^A-Z]","")을 통해 A-Z까지의 문자가 아닌것을 전부 ""로 바꿔준다.
StringBuilder로 뒤집힌 문자를 만들고 그 문자와 현재 문자를 비교하면 끝!

핵심키워드

replaceAll("[^A-Z]","") 외우는것이 아닌 이해하기.
응용해보면 알파벳인것들도 모두 지울수 있고 숫자, 등등 도 전부 지울수 있다.
(이걸 왜 이제서야 공부했을까..)

++
equalsIgnoreCase()를 이용한 풀이법

	    public String solution(String str) {
	    	String answer = "NO";
	    	str = str.toUpperCase().replaceAll("[^A-Z]", "");
	    	String a = new StringBuilder(str).reverse().toString();
	    	if(str.equals(a)) return "YES";
	    	return answer;
	    }

0개의 댓글