专栏首页AI那点小事算法提高 周期字串

算法提高 周期字串

问题描述   右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山……”这样循环的故事来搪塞右右。   我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。   例如:   字符串’abcabcabcabc’周期为3,因为它是由4个循环’abc’组成的。它同样是以6为周期(两个重复的’abcabc’)和以12为周期(一个循环’abcabcabcabc’)。   右右现在想给他的朋友大灰狼转述妈妈讲的故事,请帮他写一个程序,可以测定一个字符串的最小周期。 输入格式   一个最大长度为100的无空格的字符串。 输出格式   一个整数,表示输入的字符串的最小周期。 样例输入 HaHaHa 样例输出 2 样例输入 Return0 样例输出 7

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        String str = in.next();
        int period = 1;
        int len = str.length();
        char[] ch = str.toCharArray();
        for ( int i = 1 ; i <= len ; i++){
            boolean flag = true;
            if ( len % i != 0){
                continue;
            }
            period = i;
            for ( int j = i ; j < len ; j++){
                if( ch[j] != ch[j%i]){
                    flag = false;
                    break;
                }
            }
            if ( flag){
                System.out.println(period);
                break;
            }
        }
        in.close();
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 九度OJ——1028继续畅通工程

    题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路...

    AI那点小事
  • 九度OJ——1024畅通工程

    题目描述: 省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,...

    AI那点小事
  • 09-排序2 Insert or Merge (25分)

    Insertion sort iterates, consuming one input element each repetition, and growin...

    AI那点小事
  • 2019-计蒜之道-复赛A--外教-Michale-变身大熊猫(最长上升子序列+树状数组)

    xiaohejun
  • 编写高效的Android代码

    毫无疑问,基于Android平台的设备一定是嵌入式设备。现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远...

    飞雪无情
  • 2019 HDU 多校赛第三场 HDU 6609 Find the answer(树状数组+二分答案 查询前k小)

    题意: 多组询问,n个人,值m, 接下来n个值,要求当前值加上前面尽量多的值之和小于等于 m ,问前面要去掉几个值

    用户2965768
  • BZOJ2028: [SHOI2009]会场预约(set)

    PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地。这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申...

    attack
  • 纸上谈兵: 拓扑排序

    《文明》是一款风靡20多年的回合制策略游戏,由Sid Meier开发。《文明》结构宏大,内容丰富,玩法多样,游戏性强,称得上是历史上最伟大的游戏。在文明中,你可...

    Vamei
  • python下大数相加

    py3study
  • 【2020HBU天梯赛训练】7-26 链表去重

    给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另...

    韩旭051

扫码关注云+社区

领取腾讯云代金券