Break a Palindrome
给一个字符串, 可能是回文也可能不是, 求一个字典序最小的字符串, 要求肯定不是回文. 因为字典序最小, 肯定是从左往右扫, 因为可能是回文 所以”a”也是回文, 也要删除. 然后也要考虑”aba”这个回文, 要改写成”abb”. 所以综合这两种情况.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Solution { public String breakPalindrome(String s) { if(s == null) return null; if(s.length() == 0 || s.length() == 1) return ""; StringBuilder sb = new StringBuilder(s); for(int i = 0; i <= sb.length() / 2; i++) { if(i == sb.length() / 2) { sb.setCharAt(sb.length()-1, 'b'); return sb.toString(); } else if(sb.charAt(i) != 'a') { sb.setCharAt(i, 'a'); return sb.toString(); } } return ""; } } |