【算法】程序猿不写代码是不对的68
来源:互联网 发布:sql insert into 多表 编辑:程序博客网 时间:2024/05/29 19:22
package com.kingdz.algorithm.time201706;/** * <pre> * 最小重复周期 * 一个字符串可以由某个长度为k的字符串重复多次得到,则代表该字符串以k为周期 * 如字符串abcabcabcabc的周期可以是3,也可以是6或12 * 求一个字符串的最小周期 * </pre> * * @author kingdz * */public class Algo08 { public static void main(String[] args) { String input = "abcabcabcabc"; // 先假设最小周期是1 int min = 1; // 只要小于字符串长度就进行处理 while (min < input.length()) { // 由于最小字符串重复,所以字符串的长度一定是子串的整数倍 if (input.length() % min != 0) { min++; continue; } // 得到子串 String subStr = input.substring(0, min); int start = 0; int end = min; // 用子串和输入字符串进行比较 while (end != input.length()) { if (!subStr.equals(input.substring(start, end))) { min++; break; } else { start = end; end = start + min; } } if (end == input.length()) { break; } } System.out.println(min); }}
阅读全文
0 0
- 【算法】程序猿不写代码是不对的68
- 【算法】程序猿不写代码是不对的1
- 【算法】程序猿不写代码是不对的2
- 【算法】程序猿不写代码是不对的3
- 【算法】程序猿不写代码是不对的4
- 【算法】程序猿不写代码是不对的5
- 【算法】程序猿不写代码是不对的6
- 【算法】程序猿不写代码是不对的7
- 【算法】程序猿不写代码是不对的8
- 【算法】程序猿不写代码是不对的9
- 【算法】程序猿不写代码是不对的10
- 【算法】程序猿不写代码是不对的11
- 【算法】程序猿不写代码是不对的12
- 【算法】程序猿不写代码是不对的13
- 【算法】程序猿不写代码是不对的14
- 【算法】程序猿不写代码是不对的15
- 【算法】程序猿不写代码是不对的16
- 【算法】程序猿不写代码是不对的17
- 深入理解Java并发之synchronized实现原理
- LintCode-排序专题总结
- 排序总结
- oracle的case-when,row_number(),trunc()函数
- 【C++】【LeetCode】22. Generate Parentheses
- 【算法】程序猿不写代码是不对的68
- 大小写转换的好方法
- C++父子类继承时的隐藏、覆盖、重载
- Xcode自带调试命令集
- 面试笔试问到一些问题
- Spark配置属性详解
- BZOJ 3643 Phi的反函数
- Pandas index详解
- C语言里面,四舍五入的原理