zoj3818(暴力枚举)

来源:互联网 发布:全面战争 知乎 编辑:程序博客网 时间:2024/04/29 07:04

题意:

给出一个字符串;

判断这个字符串是不是押韵;

押韵的情况有两种"ABABA"和"ABABCAB";

像ni co ni co ni就是ABABA格式的;

还要求ABC不相同;


思路:

直接枚举ABC可能的长度,

暴力判断:


AC代码:


#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 50 + 10;char s[N], str[N];char a[N], b[N];int n, len;bool judge1(){int flag;for(int i = 1; i < len; i++) {int j = len - i;flag = 0;if(i % 3 == 0 && j % 2 == 0) {int leni = i / 3;int lenj = j / 2;if(leni != lenj)flag = 1;if(leni == lenj) {for(int k = 0; k < leni; k++) {if(str[k] != str[k + leni]) {flag = 1;break;}}}if(!flag)continue;flag = 0;for(int k = 0; k < leni; k++) {if(str[k] != str[k + leni + lenj] || str[k] != str[k + 2 * leni + 2 * lenj]) {flag = 1;break;}}if(flag)continue;for(int k = 0; k < lenj; k++) {if(str[k + leni] != str[k + 2 * leni + lenj]) {flag = 1;break;}}if(flag)continue;return true;}}return false;}bool judge2() {int flag;for(int i = 1; i < len; i++) {int j = len - i;flag = 0;if(i % 3 == 0) {int leni = i / 3;int lenj = j;int lena, lenb;int flag1,flag2,flag3;for(int lena = 1; lena < leni; lena++) {flag1 = flag2 = flag3 = 0;lenb = leni - lena;if(lena != lenb) flag1 = 1;if(lena != lenj) flag2 = 1;if(lenb != lenj) flag3 = 1;if(lena == lenb) {for(int k = 0; k < lena; k++) {if(str[k] != str[k + lena]) {flag1 = 1;break;}}}if(lena == lenj) {for(int k = 0; k < lena; k++) {if(str[k] != str[k + 2 * leni]) {flag2 = 1;break;}}}if(lena == lenj) {for(int k = 0; k < lena; k++) {if(str[k + lena] != str[k + 2 * leni]) {flag3 = 1;break;}}}if(flag1 && flag2 && flag3) {flag = 1;break;}}if(!flag)continue;flag = 0;for(int k = 0; k < leni; k++) {if(str[k] != str[k + leni] || str[k] != str[k + 2 * leni + lenj]) {flag = 1;break;}}if(flag)continue;return true;}}return false;}int main() {int t;scanf("%d",&t);while(t--) {scanf("%s",s);int l = strlen(s);len = 0;for(int i = 0; i < l; i++) {if(s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')str[len++] = s[i];}str[len] = '\0';if(judge1() || judge2())printf("Yes\n");elseprintf("No\n");}}


0 0
原创粉丝点击