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;
}
分析:暴力枚举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;
}
相关文章推荐
- DllImport调用系统DLL的方法
- Android_布局优化
- poj 1091 跳蚤(最大公约数原理+容斥原理)
- IP地址转整数
- PHP中的常量
- uvalive4835(模拟)
- Android 获得控件的高度
- HDOJ1421 搬寝室(dp)
- 图上DP POJ3249
- iOS开发:代码通用性以及其规范 第二篇(猜想iOS中实现TableView内部设计思路(附代码),以类似的思想实现一个通用的进度条)
- 基于boost.asio的ECHO服务器
- 磁盘挂载与卸载
- 面试题26.复杂链表的复制
- jquery模拟下拉框单选框复选Select,Checkbox,Radio
- LeetCode:Summary Ranges
- List<File>
- 希望自己可以更好
- UVa 12097 - Pie(二分查找)
- 回车和换行在windows和linux下的区别
- 在linux中添加ftp用户,并设置相应的权限