周期串(JAVA语言)

package 第三章习题;
/*
 * 如果一个字符可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。
 * 例如:abcabcabcabc 以3为周期(注意:它也以6和12为周期)
 * 输入一个长度不超过80的字符串,输出其最小周期。
 */
import java.util.*;
public class 周期串 {


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String s=in.next();
int max_T=s.length();
   int T=1;
   
   while(T<max_T){
       if(max_T/T*T!=max_T) {T++;continue;}    //筛选所有可能成为T的值
       int fg=1;
       for(int i=1;i*T<max_T;i++){
           String c1=s.substring(0,T);
           String c2=s.substring(i*T,(i+1)*T);
           if(!c1.equals(c2)) fg=0;        //如果有一个片段不满足则继续循环
       }
       if(fg==1)break;     
       T++;
   }
   System.out.println(T);

}


}
全部评论

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
无能的丈夫:但我觉得这个hr语气没什么问题啊(没有恶意
点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
陈逸轩1205:才105 哥们在养生呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务