UVA 455 Periodic Strings

1、字符串類的水題。

2、給出的字符串長度一定爲重複字符串長度的倍數,只需要驗證每組循環開頭的第一個字符是否一樣即可。設置flag標記,一路讀到最後一組循環且flag=1,成立,flag=0則不成立。

3、注意最後題目要求的格式輸出。

#include<cstdio>
#include<iostream>
#include<cstring>

using namespace std;

int main()
{
	int n;
	char line[100];
	while(cin>>n) {
		while(n--) {
			scanf("%s",line);       	//輸入字符串
			int len=strlen(line);   	//字符串長度

			for(int i=1;i<=len;i++) {
				if(len%i==0) {  		//i即爲可能重複字符串的長度
					int j;
					for(j=i;j<=len;j++) {
						if(line[j]!=line[j%i])
							break;      //循環組的對應字符是否相同,相同則繼續循環,不相同則
					}                   //跳出循環
					if(j==len) {
							cout<<i<<endl;      //檢查循環是否能到字符串結束,是則對應i爲重複長
							break;              //度,否則i不是
					}
				}
			}
			if(n) cout<<endl;    //一定不能忽略題目的輸出要求
		}
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章