字符串s仅由a和b组成,每次从s中删除一个回文子串,问几步可把s删除完。
注意子串不需要是连续的,只需要保持顺序不变即可。
思路:
既然子串不需要是连续的,且s仅由a和b组成。
那么最多只需要2步即可把s删除完。
因为s本身是回文字符串时直接一步删除掉。
s本身不是回文字符串时,由于仅由a和b组成,我们跳着把a全部删除(不需要连续),因为全是a的字符串一定是回文字符串。
剩下的全都是b,也是一步可删除。
class Solution {
public int removePalindromeSub(String s) {
if(isPalind(s)) return 1;
return 2;
}
boolean isPalind(String s) {
int n = s.length();
for(int i = 0; i < n/2; i++) {
if(s.charAt(i) != s.charAt(n-1-i)) return false;
}
return true;
}
}