企业网站优化兴田德润,营销型企业网站例子,建立短语,网站建设电商题目#xff1a; 题目一[周期串问题]
如果一个字符串可以由某个长度为k的字符串重复多次得到#xff0c;我们说该串以k为周期。例如#xff0c;abcabcabcabc以3为周期#xff08;注意#xff0c;它也可以6和12为周期,结果取最小周期3#xff09;
代码如下#xff1a; …题目 题目一[周期串问题]
如果一个字符串可以由某个长度为k的字符串重复多次得到我们说该串以k为周期。例如abcabcabcabc以3为周期注意它也可以6和12为周期,结果取最小周期3
代码如下 #includestring
#includeiostream
using namespace std;int GetMinPeriod(char* string) {if (string NULL) {return -1;}int length 0; //这个地方要记得初始化不然打印出来长度为负数出来
// while (*string) { 不能这样写因为把字符串的指针改变了求长度我们需要用哥变量来保存然后求得或者用int length strlen(string);
// length;
// }char* p string;while (*p) {length;}bool isReturn true;for (int i 1; i length; i) {isReturn true;if (length % i !0) {
// return -1; 这个时候不是跳出而是跳过所以要用countinecontinue;}for (int j 0; j length - i; j) {if (string[j] ! string[ji]) {isReturn false;break;}}if (isReturn) {return i;}}return length;
}
int main(){couthello worddendl;int length GetMinPeriod(abcabc);coutlengthendl;
} 结果打印出3