class Solution:
def removePalindromeSub(self, s: str) -> int:
return 1 if s == s[::-1] else 2
1.首先明白回文是什么?向前向后读是一致的,python中将字符串倒序abcd[::-1]->bcda
,通过[::-1]
就可以将字符串倒过来,然后判断是否与原来字符串一致,一致的话就代表字符串是回文。
2.如题所示,每次删除一个回文,但是回文不一定是连续的,而且字符串只由ab
组成,我们最多只需先将所有a
删除,之后再删除所有b
就可以将字符串全部删除,以上最小删除次数为2次
3.如果本身字符串就是回文我们最多只需要删除1次即可,包括上面的情况也最多两次,所以说我们就可以通过s==s[::-1]
判断是不是回文,如果是我们只需要删除1次,不是的话也最多只有2次.