您的位置:首页 > 其它

ZOJ3818--Pretty Poem(暴力)

2015-08-29 20:14 429 查看
题目大意:在忽略标点符号的情况下,形如ABABA或者ABABCAB的字符串,我们称之为优美的字符串。给出一个字符串,判断是否是优美的。

分析:暴力枚举A和B的长度,先判断是否是ABABA型,然后再用总长度减去3倍的AB长,得到C的长度,接着判断是否符合ABABCAB型。

代码:

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;

char s[100];

int main() {
int T;
scanf("%d", &T);
while(T--) {
scanf("%s", s);
int len = strlen(s);
string str;
for(int i = 0; i < len; i++)
if(isupper(s[i]) || islower(s[i]))
str += s[i];
len = str.length();
int flag = 0;
for(int i = 1; i < len/2 && !flag; i++) {
for(int j = 1; j < len/2 && !flag; j++) {
string A = str.substr(0, i);
string B = str.substr(i, j);
if(A == B) continue;
if(A+B+A+B+A == str) {
flag = 1;
break;
}
if(len > 3*(i+j)) {
string AB = A+B;
string C = str.substr(2*(i+j), len-3*(i+j));
if(A == C || B == C) continue;
if(AB+AB+C+AB == str) {
flag = 1;
break;
}
}
}
}
if(flag) printf("Yes\n");
else printf("No\n");

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: