算法提高 现代诗如蚯蚓
时间限制:1.0s 内存限制:256.0MB
问题描述
现代诗如蚯蚓
断成好几截都不会死
字符串断成好几截
有可能完全一样
请编写程序
输入字符串
输出该字符串最多能断成多少截完全一样的子串
输入格式
一行,一个字符串
输出格式
一行,一个正整数表示该字符串最多能断成的截数
样例输入
abcabcabcabc
样例输出
4
样例说明
最多能断成四个”abc”,也就是abc重复四遍便是原串
同时也能断成两个”abcabc”
最坏情况是断成一个原串”abcabcabcabc”
数据规模和约定
字符串长度< =1000
#include <stdio.h>
#include <string.h>
int main()
{
char str[1005] = { 0 };
scanf("%s", str);
int len = (int)strlen(str);
for (int cycle = 1; cycle <= len; ++cycle)
{
if (len % cycle == 0)
{
int is_ok = 1;
for (int k = 1; k <= len / cycle - 1; ++k)
{
for (int i = 0, j = k * cycle; i < cycle; ++i, ++j)
{
if (str[i] != str[j])
{
is_ok = 0;
break;
}
}
}
if (is_ok)
{
printf("%d", len / cycle);
break;
}
}
}
return 0;
}
探讨一种算法,旨在解决字符串中寻找最多能断成多少截完全一样的子串的问题。通过实例说明,如输入'abcabcabcabc',输出为4,表示字符串可以被分为4个相同的'abc'子串。
2373

被折叠的 条评论
为什么被折叠?



