LeetCode——2029.石子游戏

大佬,牛!!!

  • 题目:字符串只有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;
    }
}
  • 总结:哎,是我的问题,没有看清楚题目。大佬链接。

你可能感兴趣的:(算法,leetcode,算法,java)