题目描述:
给你一个字符串 s,它仅由字母 'a' 和 'b' 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。
返回删除给定字符串中所有字符(字符串为空)的最小删除次数。
「子序列」定义:如果一个字符串可以通过删除原字符串某些字符而不改变原字符顺序得到,那么这个字符串就是原字符串的一个子序列。
「回文」定义:如果一个字符串向后和向前读是一致的,那么这个字符串就是一个回文。
样例:
方法一:
class Solution {
public:
int removePalindromeSub(string s) {
string news = s;
reverse(news.begin(), news.end());
if (news == s) return 1;
else return 2;
}
};
艹,这个示例3实在是太有迷惑性了,迷惑了半个小时,直接懵了,最后才想到先删a,再删b不就行了。
完完全全的脑筋急转弯,要是面试啥的时候被问到这种题目,我都能想到对面看我的样子有多想笑了= =