给一个回文字符串 str ,请你将其中一个字符用任意小写英文字母替换,使得结果字符串的字典序最小,且不是回文串。
请返回结果字符串。如果无法做到,则返回一个空串。
示例 1:
输入:palindrome = "abccba"
输出:"aaccba"
示例 2:
输入:palindrome = "a"
输出:""
提示:
1 <= palindrome.length <= 1000
str 只包含小写英文字母。
package com.loo;
public class PalindromeString {
public static void main(String[] args) {
String str = "abba";
System.out.println(noPalindromeString(str));
}
public static String noPalindromeString(String str) {
if (str == null || str.length() < 2) {
return "";
}
char[] cs = str.toCharArray();
int length = cs.length;
int len = length >> 1; // (length >> 1) = (length / 2)
boolean flag = false;
// 结果字符串需要保持字典序最小,所以替换 a 或者 b 使其符合要求
for (int i=0;i<len;i++) {
if (cs[i]!='a') {
cs[i] = 'a';
flag = true;
break;
}
}
if (!flag) {
cs[length-1] = 'b';
}
return new String(cs);
}
}