题目描述
Bob 有个文件,里面储存着很多字符串,他决定评判一下这些字符串,看看它们是漂亮的还是普通的字符串。
漂亮的字符串就是那些删除掉若干字符后,剩余的 4 个字符满足“前两个和后两个分别相同”,或“中间和两边分别相同”的字符串,即 AABB 和 ABBA 形式的字符串(形如 AAAA的也是漂亮的)。
剩下的都是普通的字符串
输入
第 1 行,字符串的组数 N。
第 2~N+1 行, 每行输入一组字符串
输出
共 N 行,每行输出:”pretty”表示该字符串很漂亮 ;”normal”表示该字符串比较普通
样例输入
5
Hello
WoWoWo
LoraBit
youngBoy
Dejiwe
样例输出
normal
pretty
normal
pretty
normal
提示
WoWoWo 删去一些字符后可变成 WWoo 也可以变成 WooW、oWWo 所以是漂亮的
youngBoy 删去一些字符后可变成 yooy 所以是漂亮的
对于 50%的数据: 1<=n<=100;
对于 100%的数据: 1<=n<=10000; 1<=字符串长度<=10;
思路
因为字符串长度不长,直接四层循环暴力即可
AC代码
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
void f(string str)
{
for(int i = 0; i < str.size(); i++)
{
for(int j = i+1; j < str.size(); j++)
{
for(int k = j+1; k < str.size(); k++)
{
for(int l = k+1; l < str.size(); l++)
{
if(str[i] == str[j] && str[k] == str[l])
{
cout << "pretty" << endl;
return;
}
else if(str[i] == str[l] && str[j] == str[k])
{
cout << "pretty" << endl;
return;
}
}
}
}
}
cout << "normal" << endl;
}
int main()
{
int n;
cin >> n;
while(n--)
{
int flag = 1;
string str;
cin >> str;
if(str.size() < 4)
{
cout << "normal" << endl;
flag = 0;
}
if(flag)
{
f(str);
}
}
return 0;
}