小塔拿到了一个长度为n的字符串s,但他不喜欢长度大于 1 的回文串。
因此他现在想要任意地删除一些s中的字母,使得s不是个长度大于1的回文串,他想知道最少需要删除几个字符,请你帮帮他吧。
题目要求最少操作数使得字符串变成非回文字符串或者长度为1的回文字符串.首先利用双指针判断该字符串是不是回文字符串,不是则直接答案为0.接下来考虑删除操作,对于只有1种字符的回文字符串,怎么删都是回文串只能删到最后一个,答案为len−1,拥有多种字符的那么肯定存在相邻字符不同的字符,删除一个即可满足条件答案为1 整体复杂度o(n)
#include <bits/stdc++.h>
using namespace std;
#define N 100005
int a[N];