zoj 3818 Pretty Poem

//AC
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>

using namespace std;

char ch[55];
string str;
int len;

void work(){
    for(int i=1; 3*i+2<=len; i++){
        if((len-3*i) % 2 != 0) continue;
        int j = (len-3*i)/2;
        string A = str.substr(0, i);
        string B = str.substr(i, j);
        if(A == B) continue;
        if(A + B + A + B + A == str){
            puts("Yes"); return;
        }
    }
    for(int i=1; 3*i+4<=len; i++){
        for(int j=1; 3*(i+j)+1<=len; j++){
            int k = len - 3*(i+j);
            string A = str.substr(0, i);
            string B = str.substr(i, j);
            string AB = A + B;
            string C = str.substr(2*(i+j), len-3*(i+j));
            if(A == B || B == C || C == A) continue;
            if(AB + AB + C + AB == str){
                puts("Yes"); return;
            }
        }
    }
    puts("No");
}

int main() {
	int t;
	scanf("%d", &t);
	while (t--) {
		str.clear();
		scanf("%s", ch);
		len = strlen(ch);
		for (int i = 0; i < len; i++)
			if (isalpha(ch[i]))
				str += ch[i];
		len = str.length();
        work();
	}
	return 0;
}

發佈了151 篇原創文章 · 獲贊 19 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章