首页 > 代码库 > 周期串问题
周期串问题
#include "OJ.h" #include <iostream> using namespace std; /* 功能:计算字符串的最小周期。 原型: int GetMinPeriod(char *string); 输入参数: char * string:字符串。 返回值: int 字符串最小周期。 思路:使用i表示字符串可能的周期,从周期为1开始逐渐增大1,当i满足是字符串的周期时返回; i满足是字符串的周期的条件:1、将前i个字符保存,后面所有的字符串都与该字符串比较,没有不同的字符 2、所有字符串的长度k是i的整数倍 */ int GetMinPeriod(char *inputstring) { /*在这里实现功能*/ if (inputstring == NULL || *inputstring =='\0') { return 0; } for (int i =1; i <=100; ++i) { //char *p = inputstring; char *temp = new char [i]; bool flag = false; for (int j =0; j < i ; ++j) { temp[j] = inputstring[j]; } int k = i ; while (inputstring[k] != '\0') { if (temp[k%i] != inputstring[k]) { flag =true; break; } k++; } delete [] temp; if (flag == false && k%i == 0) { return i; } } return 0; } int main() { char inputstring[13] = "abcabcabcabc"; cout<<GetMinPeriod(inputstring)<<endl; return 0; }
周期串问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。