8. 유효한 팰린드롬
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램
알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들은 무시합니다.
입력) 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
출력) 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다.
1. replaceAll() 이용
import java.util.Scanner;
public class Main {
private static String solution(String str) {
String answer = "NO";
str = str.toUpperCase().replaceAll("[^A-Z]", ""); // 대문자가 아닌 것들을 제거
String temp = new StringBuilder(str).reverse().toString();
if (str.equals(temp)) answer = "YES";
return answer;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(solution(str));
}
}
2.
import java.util.Scanner;
public class Main {
private static String solution(String str) {
String onlyAlphabet = "";
for (char c : str.toCharArray()) {
if (Character.isAlphabetic(c)) {
onlyAlphabet += String.valueOf(c);
}
}
str = new StringBuilder(onlyAlphabet).reverse().toString();
if (!str.equalsIgnoreCase(onlyAlphabet)) return "NO";
return "YES";
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
System.out.println(solution(str));
}
}
결과
입력
hello: welcome, 'emoclew &olleh
결과
YES
댓글