회문문자열 만들기.
한자리를 지워서 팰린드롬이면 "yes" 리턴.
만들 수 없으면 "NO" 리턴하게 만들자
입출력 예시
s result
"abcbdcba" "YES"
"abcabbakcba" "YES"
"abcacbakcba" "NO"
import java.util.*;
class Main {
public Boolean isPalindrome(String s){
Boolean answer=true;
int rt=s.length()-1;
int lt=0;
while(lt<rt){
if(s.charAt(lt)!=s.charAt(rt)) return false;
else{
lt++;
rt--;
}
}
return answer;
}
public String solution(String s){
String answer="YES";
int rt=s.length()-1;
int lt=0;
while(lt<rt){
if(s.charAt(lt)!=s.charAt(rt)){
String s1=s.substring(lt, rt);
String s2=s.substring(lt+1, rt+1);
if(!isPalindrome(s1) && !isPalindrome(s2)) return "NO";
else break;
}
else{
lt++;
rt--;
}
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
System.out.println(T.solution("abcabbakcba"));
System.out.println(T.solution("abcacbakcba"));
}
}
만약 문제가 두자리까지 지울 수 있었다면? 생각해봐야겠다.