zoukankan      html  css  js  c++  java
  • 3. Longest Substring Without Repeating Characters

    Given a string, find the length of the longest substring without repeating characters.

    Example 1:

    Input: "abcabcbb"
    Output: 3 
    Explanation: The answer is "abc", with the length of 3. 
    

    Example 2:

    Input: "bbbbb"
    Output: 1
    Explanation: The answer is "b", with the length of 1.
    

    Example 3:

    Input: "pwwkew"
    Output: 3
    Explanation: 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.



    常规做法, 称之为双指针吧,i和j, 每次移动j, 如果有重复的则把i往右移动,
    class Solution {
    public:
        int lengthOfLongestSubstring(string s) {
            unordered_map<char,int> table;
            int res=0;
            for(int i=0,j=0;i<=j&&j<s.size();)
            {
                auto iter=table.find(s[j]);
                if(table.end()!=iter)
                {
                    i=max(i,iter->second+1); //尤其注意这里的max, 不然i有可能变小
                    iter->second=j;
                }
                else
                {
                    table[s[j]]=j;
                }
                printf("%d %d
    ",i,j);
                res=max(res,j-i+1);
                ++j;
            }
            return res;
        }
    };
     
  • 相关阅读:
    代码对比软件——code compare
    IAR调试和keil调试的一点小区别
    谷访问歌助手
    X86架构的寄存器
    ant-design-pro
    js 闭包 作用域
    《三体》总结
    如何通过SQL注入盗取数据库信息
    《看见》总结
    《欲望的演化》总结
  • 原文地址:https://www.cnblogs.com/lychnis/p/11785615.html
Copyright © 2011-2022 走看看