1466C - Canine poetry
// 关键思想:
任何一个回文串必定包含一个要么是长度为2要么长度为3的回文串
只需要破坏长度为2和3的回文串即可。
#include<iostream>
#include<string>
using namespace std;
const int N = 200010;
bool vis[N];
int main()
{
int t;
cin >> t;
while(t --)
{
string s;
cin >> s;
int ans = 0;
for(int i = 0; i < s.size(); i ++) vis[i] = false;
for(int i = 0; i < s.size(); i ++)
{
if(i >= 1 && s[i] == s[i - 1] && !vis[i - 1]) vis[i] = true;
if(i >= 2 && s[i] == s[i - 2] && !vis[i - 2]) vis[i] = true;
if(vis[i]) ans ++;
}
cout << ans << endl;
}
}