zoukankan      html  css  js  c++  java
  • (字符串哈希表)找到字符串中不重复出现字符的最长子串长度

    • 题目:
      给定一个字符串,找到不重复字符的最长子字符串的长度。 例如,对于“abcabcbb”,不重复字母的最长子字符串是“abc”,长度为3.对于“bbbbb”,最长子字符串是“b”,长度为1。
    • 思路:由于这个题目只要给出最长不重复子串的长度,所以代码比较简单。第一思路就是利用哈希表来进行操作。用字符当做键值,字符在串中的位置当做实值。用pre变量记录字符第一次出现的位置,最大长度max就是利用当前位置减去pre就是当前最大长度了。
    • 代码
      class Solution {
      public:
          int lengthOfLongestSubstring(string s) {
              map<char, int> mp;
              for (int i=0; i<s.length(); i++)
                  mp[s[i]] = -1;//初始化哈希表
              int pre = -1, Max = 0;
              for (int i=0; i<s.length(); i++){
                  pre = max(pre, mp[s[i]]);
                  Max = max(Max, i-pre);
                  mp[s[i]] = i;
              }
              return Max;
          }
      };
  • 相关阅读:
    influxdb 使用
    【刷题】如何查找最长链
    学习中的开源框架和系统
    常见错误总结
    开发者必备网站
    计算机基础知识以及常用业务场景
    (1)、hive框架搭建和架构简介
    hadoop安装和配置
    linux基础
    UML学习目录
  • 原文地址:https://www.cnblogs.com/Kobe10/p/6360993.html
Copyright © 2011-2022 走看看