유효한 팰린드롬
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 한다.
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 "NO"를 출력하는 프로그램을 작성
■ 문제 풀이
1) 입력 설명
- 회문을 검사할 때 알파벳만 가지고 회문을 검사
- 대소문자를 구분하지 않음, 알파벳 이외의 문자들은 무시
- 첫 줄에 길이 100을 넘지 않는다.
2) 출력 설명
- 팰린드롬인 경우 YES를 아닌경우 NO를 반환한다.
3) 테스트
- input : found7, timk: study; Yduts; emit, 7Dnuof / output : NO
- input : a sd fg #%hjkl; %#$@! lkj&*hgfd s ##a / output : YES
- input : kdjg$@kjkldjkg%@dkjgkj / output : NO
4) 문제 풀이
- 정규표현식을 사용하여 대소문자 이외의 값들은 제거
- String 클래스의 equalsIgnoreCase() 함수는 비교 대상의 두 문자열의 대소문자는 상관없이 비교를 하여 같으면 true, 다르면 false를 반환
import java.util.Scanner;
public class Main {
private String solution(String input) {
String answer = "NO";
//대소문자 구분하지 않음
input = input.toLowerCase();
input = input.replaceAll("[^a-z]", "");
StringBuilder stringBuilder = new StringBuilder(input);
String reverse = stringBuilder.reverse().toString();
if (input.equals(reverse)) {
answer = "YES";
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println(main.solution(input));
return;
}
}
'CodingTest Practice' 카테고리의 다른 글
[인프런] 가장 짧은 문자 거리 (0) | 2022.04.05 |
---|---|
[인프런] 숫자만 추출 (0) | 2022.04.03 |
[인프런] 회문 문자열 (0) | 2022.04.03 |
[인프런] 중복문자제거 (0) | 2022.04.02 |
[인프런] 특정 문자 뒤집기 (0) | 2022.03.31 |