• LeetCode--003--无重复字符的最长子串(java)


    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:

    输入: "abcabcbb"
    输出: 3 
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    

    示例 2:

    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    

    示例 3:

    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
         请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
    i为遍历索引,j为所求字串的起始位置
     1 class Solution {
     2     public int lengthOfLongestSubstring(String s) {
     3         if(s == null || s.length()==0) return 0;
     4         HashMap<Character,Integer> map = new HashMap<>();
     5         int res = 0,j=0;
     6         for (int i = 0;i < s.length();i++){
     7             if(map.containsKey(s.charAt(i))){
     8                 j = Math.max(j,map.get(s.charAt(i))+1);
     9             }
    10             map.put(s.charAt(i),i);
    11             res = Math.max(res,i-j+1);
    12         }                    
    14         return res;                    
    16     }
    17 }

    2019-03-02 23:13:35

  • 相关阅读:
    bat 处理adb脚本
    作用域,高阶函数
    常用内置函数-6
    习题元祖与字典的值交换
    函数的参数
    序列类型与非序列类型
    格式化输出,深浅复制
    可变,不可变与 id 的关系
    linux-shell系列6-rundeck生成host文件
    linux-shell系列5-统计
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/10463547.html
Copyright © 2020-2023  润新知