大佬,牛!!!
- 题目:字符串只有a、b两个字母构成,每次删除操作可以从这里面删除一个回文子序列。直到全部删除,问需要最少删除多少次。
- 思路,我本以为这个子序列必须是连续的,结果不是,恍然大明白。
- 技巧:如果本身是回文的,就是直接一次就ok了,如果不是的话,则第一次删除所有的a组合的子序列,第二次删除所有的b构成的子序列即可。
伪代码
for遍历看看是不是回文,是就返回1,不是返回2
java代码
class Solution {
public int removePalindromeSub(String s) {
int n = s.length();
for (int i = 0; i < n / 2; ++i) {
if (s.charAt(i) != s.charAt(n - 1 - i)) {
return 2;
}
}
return 1;
}
}
- 总结:哎,是我的问题,没有看清楚题目。大佬链接。