Longest Substring Without Repeating Characters

原创 2016年06月02日 10:07:41

题意:给定一个字符串,找出不含相同字母的连续子串


思路:复杂度o(n)

用一个数组used[500]记录每个字符出现的位置,用tempRes记录当前子串的长度。用pointer记录当前不重复的字串开始位置

若出现重复,则tempRes的初始值为i-used[s[i]](就是该字母上一次出现的位置到当前位置,能保证之前的不重复),同时将pointer更新为used[s[i]+1],即该字母重复出现的次数的下一个。字符串标记从1开始,所以一开始要加一个随机字符(这里是q)上代码

    int lengthOfLongestSubstring(string s) {
        string temp="";
        int i=0,length=s.length(),ans=0,pointer=1,tempRes=0;
        if(length==0) return 0;
        int used[500]={0};
        temp+="q";
        temp+=s;
        length=temp.length();
        for(i=1;i<length;i++)
        {
            if(used[temp[i]]==0||used[temp[i]]<pointer)
            {
                tempRes++;
                used[temp[i]]=i;
            }
            else
            {
                pointer=used[temp[i]]+1;
                ans=max(tempRes,ans);
                tempRes=i-used[temp[i]];
                used[temp[i]]=i;
            }
        }
        ans=max(tempRes,ans);
        return ans;
    }

Longest Substring Without Repeating Characters -- LeetCode

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

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
  • 16828

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
  • 2645

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

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
  • 6327

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
  • 836

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
  • 293

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
  • 7619
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Longest Substring Without Repeating Characters
举报原因:
原因补充:

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