LeetCode 3. Longest Substring Without Repeating Characters

public class Solution {
    public int lengthOfLongestSubstring(String s) {
        char [] cs=s.toCharArray();
        int count=0; //用于记录最大不重复字符的长度
        int k;
        if(cs.length==1)
        return 1;
        for(int i=0,j=1;j<cs.length;)
        {
            
        	k=j-1;
        	while(k>=i && cs[k]!=cs[j])
        	{
        	    k--;
        	}
        	if(k<i)
        	{
        	    int count4=j-i+1;
        	    count=count4>count? count4:count;
        	    j++;
        	}
        	else if(cs[k]==cs[j]) 
        	{
        	   int count1 =j-k;
        	   int count2=k-i+1;
        	   int count3=(count1>=count2)? count1:count2; //取count1、count2中最大的
        	   if(count3>=count){count=count3;} //将count更新为最大的
        	   i=k+1;
        	   j++;
        	}
        }
        return count;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值