1328. 破坏回文串
给你一个回文字符串 palindrome ,请你将其中 一个 字符用任意小写英文字母替换,使得结果字符串的字典序最小,且 不是 回文串。
请你返回结果字符串。如果无法做到,则返回一个空串。
示例 1:
输入:palindrome = "abccba"
输出:"aaccba"
示例 2:
输入:palindrome = "a"
输出:""
解析
我们就找第一个不是a 的,然后替换成a ,但是奇数位那种就不行,因为中间字符变了依旧是回文串。
另外如果循环一遍全是a ,那就把最后一个字符变为b即可
class Solution {
public String breakPalindrome(String palindrome) {
char[] vals = palindrome.toCharArray();
if(vals.length==1) return "";
//找到第一个不是a的换成a,中间的不行
int len = vals.length;
boolean alla = true;
for(int i = 0 ;i < len;i++){
if(vals[i]!='a'){
alla = false;
if(len%2==1 && i==(len/2)) continue;
vals[i] = 'a';
return new String(vals);
}
}
vals[len-1]='b';
return new String(vals);
}
}
注意:本文归作者所有,未经作者允许,不得转载