计蒜客 - 最长不重复子串

这是一篇关于寻找给定字符串中最长不重复子串的问题描述,要求子串中不能包含重复字符。示例给出了字符串 'abcabcbb' 和 'bbbbb' 的情况,最长不重复子串分别为 'abc' 和 '',对应的长度分别为 3 和 1。程序需要处理长度不超过 100 的字符串,并输出最长不重复子串的长度。

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


最长不重复子串


给定一个字符串,找到最长的子串,要求该子串中没有重复的字符。

例如:

字符串abcabcbb的不含重复字符的 最长 子串为abc,长度为 33

bbbbbb的不含重复字符的 最长 子串为b,长度为 11

输入格式

输入包含多行,每一行对应一个长度不超过 100100 的输出,直到遇到结束符为止。每行依次输入字符串s

输出格式

输出不含重复字符的 最长 子串的长度。

样例输入
hchzvfrkmlnozjk
样例输出
11


/*
	思路:规模很小所以直接全部遍历一遍。
 */

import java.util.Scanner;
public class Main
{
	public static void main(String[] args) 
	{
		Scanner cin = new Scanner(System.in);
		while(cin.hasNext())
		{
			String str = cin.next();
			String maxsub = "";
			for(int i=0;i<str.length();++i)
			{
				StringBuilder sb = new StringBuilder();
				for(int j=i;j<str.length();++j)
				{
					if(sb.indexOf(str.charAt(j)+"")!=-1)break;
					sb.append(str.charAt(j));
				}
				if(maxsub.length()<sb.length())
					maxsub = sb.toString();
			}
			System.out.println(maxsub.length());
		}
	}
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值