유효한 팰린드롬 (replaceAll 정규식 이용)
문제
나의풀이
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;
}
Author And Source
이 문제에 관하여(유효한 팰린드롬 (replaceAll 정규식 이용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zmdals/유효한-팰린드롬-replaceAll-정규식-이용저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)