码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Algorithm

时间:2017-05-18 16:56:09      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:using   tps   sequence   out   .com   arc   com   har   and   

LeetCode Algorithm

原文出处:【LeetCode

算法参考:【陈皓 coolshell

3.Longest Substring Without Repeating Characters

 

3.Longest Substring Without Repeating Characters

/**********************************************************
** 3.Longest Substring Without Repeating Characters
** Given a string, find the length of the longest substring without repeating characters.
**
** Examples:
** Given "abcabcbb", the answer is "abc", which the length is 3.
** Given "bbbbb", the answer is "b", with the length of 1.
** Given "pwwkew", the answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
**********************************************************/
#include <string>
#include <iostream>
#include <map>

using namespace std;

int lengthOfLongestSubstring(string s) {
    int longestLen = 0;
    int lastRepeatPos = -1;
    map<char, int> matchCharacters;

    for (int i=0; i<s.size(); ++i) {
        if (matchCharacters.find(s[i]) != matchCharacters.end() && lastRepeatPos < matchCharacters[s[i]]) {
            lastRepeatPos = matchCharacters[s[i]];
        } 

        if (i-lastRepeatPos > longestLen) {
            longestLen = i-lastRepeatPos;
        }

        matchCharacters[s[i]] = i;
    } 

    return longestLen;    
}

//-----example-----
int main(int arc, char ** argv) {
    string s = "abcabcbb";
    cout << s << ":" << lengthOfLongestSubstring(s) << endl;

    s = "bbbbb";
    cout << s << ":" << lengthOfLongestSubstring(s) << endl;

    s = "pwwkew";
    cout << s << ":" << lengthOfLongestSubstring(s) << endl;

    return 0;
}

//-----output-----
//abcabcbb:3
//bbbbb:1
//pwwkew:3

 

LeetCode Algorithm

标签:using   tps   sequence   out   .com   arc   com   har   and   

原文地址:http://www.cnblogs.com/sz-leez/p/6873841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!