给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: s = "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
解法一:
逐个遍历,确定第一个字母后,从这个字母的第二开始添加进字串,添加的时候判断添加进去的字母是否出现过。如果没有出现过,就将记录长度的变量加1;如果出现过,就结束这次循环。
public int lengthOfLongestSubstring(String s) {
char[] ch = s.toCharArray();
int n = ch.length,u=0,max=0;
for(int i=0;i<n;i++)
{
if(i==n-1)
{
u=1;
}
else
{
u=1;
int bj=0;
for(int j=i+1;j<n;j++)
{
//ch[j]判断有没有出现过
for(int t=j-1;t>=i;t--)
{
if(ch[t]==ch[j])
bj=1;//标记代表找到相同的
}
if(bj==1)
break;
else
u++;
}
}
//判断是否更换max
if(max<u)
max=u;
}
return max;
}
解法二:用Java
中的 HashSet来实现