博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求最小周期串
阅读量:6879 次
发布时间:2019-06-26

本文共 930 字,大约阅读时间需要 3 分钟。

如果一个字符串可以由某个长度为k的字符串重复多次得到,则该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。

样例输入:HoHoHo
样例输出:2

思路:假设输入的字符串是in[],遍历所有可能的周期i,那么序列中的所有数j都会满足 in[j]==in[j%i],如果不满足的话跳出循环,如满足的话打印跳出,这个时候就能保证是最小周期串.

java实现的代码为:

package ch02;import java.util.Scanner;public class StringTimes {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		Scanner scanner = new Scanner(System.in);		String input = null;		while((input = scanner.next()) != null){			getTime(input);		};	}	public static void getTime(String input){		int len = input.length();				char[] word = input.toCharArray();		for(int i = 1; i <= len;i++){			if(len % i == 0){				int ok = 1;				for(int j = 1;j < len ;j++){					if(word[j] != word[j % i]){						ok = 0;						break;					}				}				if(ok == 1){					System.out.print(i);					break;				}			}											}	}				}

  

转载于:https://www.cnblogs.com/dongqiSilent/p/3427132.html

你可能感兴趣的文章
桌面客户端
查看>>
exchange online 用户许可证迁移常见问题
查看>>
ELK调优
查看>>
mysql性能优化2
查看>>
【Java】Java 实现导出excel表 POI
查看>>
如何对待用户需求的几点思考
查看>>
POJ 3686 The Windy's 最小费用最大流
查看>>
RH124-13 软件包安装与升级
查看>>
我的友情链接
查看>>
1.python入门到精通
查看>>
通过vue-cli来学习修改Webpack多环境配置和发布问题
查看>>
Exchange Server 2013 高可用部署系列(四)邮箱服务器高可用——数据库可用性组(DAG)...
查看>>
和尚挑水的故事给我们带来的思想
查看>>
Zookeeper工作原理
查看>>
(转)我为什么鼓励工程师写blog
查看>>
mysql数据恢复
查看>>
每秒处理10万订单乐视集团支付架构
查看>>
study
查看>>
错误: 无法将文件“obj\Debug\Web.dll”复制到“bin\Web.dll”。对路径“bin\Web.dll”的访问被拒绝...
查看>>
jquery怎么实现左右滑动的问题
查看>>