[华为机试练习题]1.周期串问题

简介:

题目一[周期串问题]

如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3)。字符串的长度小于等于100,由调用者保证。

接口说明

原型:
int GetMinPeriod(char *inputstring);
输入参数:
char * inputstring:字符串
返回值:
int 字符串最小周期

代码一

/*---------------------------------------
*   日期:2015-06-23
*   作者:SJF0115
*   题目: 周期串问题 
*   网址:http://ilearning.hwclouds.com/exam/ShowSolution?method=SolutionApp&id=4401
*   结果:AC
*   来源:华为机试练习题
*   博客:
-----------------------------------------*/

/*
功能:计算字符串的最小周期。
原型:
    int GetMinPeriod(char *string);

输入参数:
    char * string:字符串。

返回值:
    int 字符串最小周期。

*/

int GetMinPeriod(char *inputstring)
{
    if(inputstring == NULL)
    {
        return -1;
    }
    int size = strlen(inputstring);
    int maxPeriod = size / 2;
    bool isSucess = true;
    for(int i = 1;i <= maxPeriod;++i)
    {
        isSucess = true;
        for(int j = 0;j < i;++j)
        {
            for(int k = i+j;k < size;k+=i)
            {
                if(inputstring[j] != inputstring[k])
                {
                    isSucess = false;
                    break;
                }//if
            }//for
            if(isSucess == false)
            {
                break;
            }
        }//for
        if(isSucess)
        {
            return i;
        }
    }//for
    return size;
}

目录
相关文章
|
4月前
|
C语言
c语言编程练习题:7-51 求奇数分之一序列前N项和
c语言编程练习题:7-51 求奇数分之一序列前N项和
30 0
|
5月前
|
算法 搜索推荐 程序员
C语言第十三练——输入一个正整数,判断这个数是否是素数
C语言第十三练——输入一个正整数,判断这个数是否是素数
88 0
|
6月前
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
33 0
|
C语言 Python
【蓝桥OJ——C语言】顺子日期、特殊时间、乘积尾零
2022 年 2 月 22 日 22:20 是一个很有意义的时间, 年份为 2022 , 由 3 个 2 和 1 个 0 组成, 如果将月和日写成 4 位, 为 0222 , 也是由 3 个 2 和 1 个 0 组 成, 如果将时间中的时和分写成 4 位, 还是由 3 个 2 和 1 个 0 组成。
140 0
2023.3.5-课堂练习01题目:计算最长英语单词链
2023.3.5-课堂练习01题目:计算最长英语单词链
【C语言】(错题整理) 寻找完数、字符串中各类字符数的统计、最大公约数和最小公倍数、回文数计算 (循环、函数相关内容)
本篇博客旨在整理最近在头歌遇到的难题、错题,对其进行分析并整理。 一、循环 1.寻找完数(计算因子例题) 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出1000之内的所有完数。 这道题的首要任务就是找到各个数的因子,然后再对其进行判断。那么计算这个数的因子,我们可以用循环,试每个小于它的数对其进行求余%,结果为零即是因子。
【每日一题Day69】转换字符串的最少操作次数 |贪心
实现:遍历整个字符串,如果当前字符为’X’,那么进行转换,指针后移三位;如果当前字符为’O’,那么指针后移一位
59 0
2015年蓝桥杯 题六 奇妙的数字 填空题 (全排列+check+转字符串)
2015年蓝桥杯 题六 奇妙的数字 填空题 (全排列+check+转字符串)

热门文章

最新文章