You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#include <iostream>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
using namespace std;
|
|
string shrink(const string &str)
|
|
{
|
|
int len = str.size();
|
|
if (len <= 1)
|
|
return str;
|
|
vector<char> v;
|
|
for (int i = 0; i < len - 1; i++)
|
|
if (str[i] == str[i + 1])
|
|
while (i + 1 < len && str[i] == str[i + 1])
|
|
i++;
|
|
else
|
|
v.push_back(str[i]);
|
|
if (str[len - 2] != str[len - 1])
|
|
v.push_back(str[len - 1]);
|
|
return string(v.begin(), v.end());
|
|
}
|
|
int main()
|
|
{
|
|
int n;
|
|
string s;
|
|
cin >> n;
|
|
while (n--)
|
|
{
|
|
cin >> s;
|
|
int mmax = s.size(), mmin = s.size();
|
|
for (char ch = 'A'; ch <= 'C'; ch++)
|
|
for (int i = 0; i < s.size(); ++i)
|
|
for (int j = 0; j < 3; ++j)
|
|
{
|
|
string str = s.substr(0, i + 1) + ch + s.substr(i + 1);
|
|
int len = str.size();
|
|
while (len > (str = shrink(str)).size())
|
|
len = str.size();
|
|
mmin = min(mmin, len);
|
|
}
|
|
cout << mmax - mmin + 1 << endl;
|
|
}
|
|
return 0;
|
|
} |