Middle-题目114:3. Longest Substring Without Repeating Characters

原创 2016年05月31日 20:05:37

题目原文:
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for “abcabcbb” is “abc”, which the length is 3. For “bbbbb” the longest substring is “b”, with the length of 1.
题目大意:
求一个字符串的没有重复字符的最长子串的长度。(不一定连续)
题目分析:
(算法思路来自度娘)定义一个布尔型数组sign[256],记录每个字符是否出现过。然后两个指针i和j都从头开始,先让j向右移动,直到第一次出现重复元素时,移动i至排除掉这个重复元素,再移动j,这样一直维护着以j为结尾的最长子串,所以能得到最优解。
源码:(language:java)

public class Solution {    
    public int lengthOfLongestSubstring(String s) {  
        int i,j,max=0;  
        boolean[] sign = new boolean[256];  
        for(i=0,j=0;j<s.length();j++) {              
            while(sign[s.charAt(j)])  
                sign[s.charAt(i++)] = false;  
            sign[s.charAt(j)] = true;              
            max=Math.max(max,j-i+1);  
        }  
        return max;  
    } 
}  

成绩:
5ms,beats 91.60%,众数18ms,8.16%
Cmershen的碎碎念:
该算法只需线性复杂度,既优雅又易于理解,值得学习!

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

Longest Substring Without Repeating Characters -- LeetCode

原题链接: http://oj.leetcode.com/problems/longest-substring-without-repeating-characters/  这道题用的方法是在Leet...
  • linhuanmars
  • linhuanmars
  • 2014年02月26日 01:53
  • 18818

leetcode:3. Longest Substring Without Repeating Characters (java)

题目链接:https://leetcode.com/problems/longest-substring-without-repeating-characters/ 题目: Given a str...
  • j754379117
  • j754379117
  • 2016年06月20日 20:36
  • 838

LeetCode 3 — Longest Substring Without Repeating Characters (C++ Java Python)

题目:http://oj.leetcode.com/problems/longest-substring-without-repeating-characters/] Given a string, ...
  • dragon_dream
  • dragon_dream
  • 2014年02月18日 22:22
  • 4656

[LeetCode] 003. Longest Substring Without Repeating Characters (Medium) (C++/Java/Python)

[LeetCode] 003. Longest Substring Without Repeating Characters (Medium) (C++/Java/Python)
  • hcbbt
  • hcbbt
  • 2015年02月27日 12:55
  • 5775

LeetCode(3) Longest Substring Without Repeating Characters

LeetCode的第3题,给定一个字符串,找到其中的一个最长的字串,使得这个子串不包含重复的字符。 // // Solution.h // LeetCodeOJ_003_LongestUnique...
  • feliciafay
  • feliciafay
  • 2013年11月23日 04:25
  • 16832

leetcode 3 Longest Substring Without Repeating Characters最长无重复子串

Given a string, find the length of the longest substring without repeating characters. For example, ...
  • wangyaninglm
  • wangyaninglm
  • 2016年04月05日 22:27
  • 2649

LeetCode 3.Longest Substring Without Repeating Characters c语言版

问题描述: Given a string, find the length of the longest substring without repeating characters. Exa...
  • banana1006034246
  • banana1006034246
  • 2017年07月15日 17:35
  • 294

LeetCode 第三题,Longest Substring Without Repeating Characters

题目: Given a string, find the length of the longest substring without repeating characters. For examp...
  • hu1020935219
  • hu1020935219
  • 2014年08月03日 20:38
  • 7624

leetcode python - Longest Substring Without Repeating Characters

# Given a string, find the length of the longest substring without repeating characters. # # Example...
  • AMDS123
  • AMDS123
  • 2017年04月01日 15:07
  • 6330

Longest Substring Without Repeating Characters 最长不重复字符的字串 @LeetCode

Method 1 (Simple) We can consider all substrings one by one and check for each substring whether it ...
  • hellobinfeng
  • hellobinfeng
  • 2014年01月05日 01:56
  • 3307
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目114:3. Longest Substring Without Repeating Characters
举报原因:
原因补充:

(最多只允许输入30个字)