标签:style blog http color os io ar strong for
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 symbol A, 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.
There are multiple test cases. The first line of input contains an integer T 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.
For each test case, output "Yes" if the poem is pretty, or "No" if not.
3 niconiconi~ pettan,pettan,tsurupettan wafuwafu
Yes Yes No
#include<iostream> #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<stack> #include<queue> #include<set> #include<map> #include<cmath> #include<vector> #include<limits.h> #include<algorithm> #define LL long long #define mod 1e9 + 7 using namespace std; const int M = 55; char a[M]; char s[M]; char A[M]; char B[M]; char C[M]; int main() { int t; cin >> t; getchar(); while( t-- ) { gets(s); int temp = 0; memset(a,‘\0‘,sizeof(a)); for(int i = 0; i < strlen(s); ++i) if((s[i] >= ‘a‘ && s[i] <= ‘z‘) || (s[i] >= ‘A‘ && s[i] <= ‘Z‘)) a[temp++] = s[i]; int len = strlen(a); int ans = 0; for(int i = 1; i < 17; ++i) { for(int j = 1; j < 25; ++j) { if(3 * i + j * 2 != len) continue; memset(A,‘\0‘,sizeof(A)); memset(B,‘\0‘,sizeof(B)); memset(C,‘\0‘,sizeof(C)); strncpy(A,a,i); strncpy(B,a + i + j,i); strncpy(C,a + 2 * i + 2 * j,i); if(strcmp(A,B) == 0 && strcmp(A,C) == 0 && strcmp(B,C) == 0) { memset(A,‘\0‘,sizeof(A)); memset(B,‘\0‘,sizeof(B)); strncpy(A,a + i,j); strncpy(B,a + 2 * i + j,j); if(strcmp(A,B) == 0 && strcmp(A,C) != 0) { ans = 1; break; } } } if(ans) break; } for(int i = 2; i < 17; ++i) { if(3 * i >= len) break; memset(A,‘\0‘,sizeof(A)); memset(B,‘\0‘,sizeof(B)); memset(C,‘\0‘,sizeof(C)); strncpy(A,a,i); strncpy(B,a + i,i); strncpy(C,a + len - i,i); if(strcmp(A,B) == 0 && strcmp(A,C) == 0 && strcmp(B,C) == 0) { for(int j = 1; j < i; ++j) { memset(A,‘\0‘,sizeof(A)); memset(B,‘\0‘,sizeof(B)); memset(C,‘\0‘,sizeof(C)); strncpy(A,a,j); strncpy(B,a + j,i - j); strncpy(C,a + 2 * i,len - 3 * i); if(strcmp(A,B) != 0 && strcmp(A,C) != 0 && strcmp(B,C) != 0) { ans = 1; break; } } } if(ans) break; } if(ans) puts("Yes"); else puts("No"); } return 0; }
标签:style blog http color os io ar strong for
原文地址:http://www.cnblogs.com/767355675hutaishi/p/3960552.html