计算重复字符串长度(请从字符串中找出至少重复一次的子字符串的最大长度)

博客围绕从字符串中找出至少重复一次的子字符串的最大长度展开。给出输入输出描述及示例,解题思路是将字符串转字符数组,遍历找相同元素,再判断后续相同字符位数,保存并得到最大值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请从字符串中找出至少重复一次的子字符串的最大长度
输入描述:
字符串,长度不超过1000
输出描述:
重复子串的长度,不存在输出0


示例1
输入
ababcdabcefsgg


输出
3


说明

abc为重复的最大子串,长度为3

 

解题思路:将字符串转换为字符数组,遍历数组找到相同的元素,然后继续判断接下来的还有几位字符是否相同。保存相同位数的个数,得到最大值。

import java.util.Scanner;
public class  teat0503{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        int len=0;
        char[]chars=s.toCharArray();
        for(int i=0;i<s.length();i++){
            for(int j=i+1;j<s.length();j++){
                if(chars[i]==chars[j]){
                    int temp=1;
                    for(int k=j+1;k<s.length();k++){
                        if(chars[k]!=chars[k+i-j]){//判断第j位之后的字符是否和第i位之后继续相同
                            break;
                        }
                        else{
                            temp++;
                        }
                    }
                    len=Math.max(len,temp);
                }
            }
        }
        System.out.println(len);
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值