ZOJ 3813 Pretty Poem (暴力)
来源:互联网 发布:crm数据分析师招聘 编辑:程序博客网 时间:2024/05/17 04:51
Poetry is a form of literature that uses aesthetic and rhythmic qualities of language. There are many famous poets in the contemporary era. It is said that a few ACM-ICPC contestants can even write poetic code. Some poems has a strict rhyme scheme like "ABABA" or "ABABCAB". For example, "niconiconi" is composed of a rhyme scheme "ABABA" with A = "ni" and B = "co".
More technically, we call a poem pretty if it can be decomposed into one of the following rhyme scheme: "ABABA" or "ABABCAB". The symbolA, B and C are different continuous non-empty substrings of the poem. By the way, punctuation characters should be ignored when considering the rhyme scheme.
You are given a line of poem, please determine whether it is pretty or not.
Input
There are multiple test cases. The first line of input contains an integerT indicating the number of test cases. For each test case:
There is a line of poem S (1 <= length(S) <= 50).S will only contains alphabet characters or punctuation characters.
Output
For each test case, output "Yes" if the poem is pretty, or "No" if not.
Sample Input
3niconiconi~pettan,pettan,tsurupettanwafuwafu
Sample Output
YesYesNo
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3818
解题思路:字符串处理,直接暴力枚举A,B,C,直接判断是否满足两种情况。注意A,B,C各不相同,我是两种情况分类开处理,第二种 情况时把AB看成一个子串直接判断了,但还要判断AB能分解成两个不同子串子串A,B且不和C相同。
代码如下:
#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <string>#include <algorithm>#include <string>using namespace std;//const int maxn=205;int main(void){int t;scanf("%d",&t);while(t--){string s,a;cin>>s;int p=0,n=0;int len=s.length();for(int i=0;i<len;i++)if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'){a+=s[i];n++;}for(int l1=1;l1<=n;l1++) //第一种情况ABABA的判断{string A=a.substr(0,l1); //子串A总是从第一个位置开始的for(int l2=1;l2<=n;l2++){if(l1+l2+l1+l2+l1>n) //长度和大于主串,不必再往后枚举break;string B=a.substr(l1,l2); //子串B总是紧挨着子串Aif(a==A+B+A+B+A&&A!=B){p=1;break;}}if(p)break;}if(p){printf("Yes\n");continue;}for(int l1=2;l1<=n;l1++) //第二种情况ABABCAB的判断{string AB=a.substr(0,l1); //把AB看成一个子串for(int l2=1;l2<=n;l2++){if(l1+l1+l2+l1>n)break;string C=a.substr(2*l1,l2);if(a==AB+AB+C+AB) //满足条件时进一步判断AB能分解成不同的子串A和B{int lab=AB.length();for(int k=1;k<lab;k++){string A=AB.substr(0,k);string B=AB.substr(k,lab-k);if(A!=C&&A!=B&&B!=C){p=1;break;}}if(p)break;}}if(p)break;}if(p)printf("Yes\n");elseprintf("No\n");}}
- ZOJ 3813 Pretty Poem (暴力)
- ZOJ - 3818 Pretty Poem 暴力
- zoj 3818 Pretty Poem(暴力枚举)
- ZOJ 3818 Pretty Poem(暴力求解)
- ZOJ3818 Pretty Poem(暴力)
- ZOJ - 3818 Pretty Poem
- zoj 3831 Pretty Poem
- zoj 3818 Pretty Poem
- ZOJ 3818 Pretty Poem
- ZOJ 3810 Pretty Poem
- zoj 3818 Pretty Poem
- ZOJ 3818 Pretty Poem
- ZOJ 3818 Pretty Poem(暴力)牡丹江网赛
- ZOJ 3818 Pretty Poem (暴力模拟 string(substr))
- ZOJ3818-Pretty Poem(暴力枚举)
- ZOJ3818--Pretty Poem(暴力)
- ZOJ 3818 Pretty Poem 字符串
- ZOJ 3818 Pretty Poem 字符串
- 基于arm和ds18b20的系统
- HDU 3172 Virtual Friends
- Bootstrap 准备工作
- boostrape 栅栏总结
- xcode7-beta版本真机调试
- ZOJ 3813 Pretty Poem (暴力)
- Reverse Integer
- 音频播放
- 两分钟读懂《成大事者不纠结》——读书笔记
- 小鱼收纳app V1.0.6 安卓版
- “TCP:三次握手”分析——以一个简单的“服务器”和“客户端”为例
- minecraft花生壳怎样开服
- 记忆图册简介
- poj 1276 Cash Machine 多重背包