zoukankan      html  css  js  c++  java
  • 【LeetCode3】Longest Substring Without Repeating Characters★★

    题目描述:

    解题思路:

       借用网上大神的思想:the basic idea is, keep a hashmap which stores the characters in string as keys and their positions as values, and keep two pointers which define the max substring. move the right pointer to scan through the string , and meanwhile update the hashmap. If the character is already in the hashmap, then move the left pointer to the right of the same character last found. Note that the two pointers can only move forward.

      大意:基本思想是,用一个hashmap存储字符串,把字符串的每一个字符当作key,字符所在的位置作为value,并维护两个指针,两个指针之间就是不存在重复字符的字串,而此题求的是满足这样要求的最大字串。然后,移动右指针遍历字符串,同时更新hashmap。如果遍历到的字符已存在于hashmap,就移动左指针到最后一次出现该字符的右边一个位置。注意,两个指针都只能向右移动,不能回退。

      以字符串abbc为例:

    Java代码:

     1 import java.util.HashMap;
     2 import java.util.Map;
     3 
     4 public class LeetCode371 {
     5     public static void main(String[] args) {
     6         String s="abba";
     7         System.out.println(s+"最长不存在重复字符的字串长度是:"+new Solution().lengthOfLongestSubstring(s));
     8         }
     9 }
    10 class Solution {
    11 public int lengthOfLongestSubstring(String s) {
    12         Map<Character,Integer> map=new HashMap<Character,Integer>();
    13         int max=0;
    14         for(int left=0,right=0;right<s.length();right++){
    15             if(map.containsKey(s.charAt(right)))
    16                 left=Math.max(left,map.get(s.charAt(right))+1);
    17             map.put(s.charAt(right), right);
    18             max=(right-left+1)>=max?(right-left+1):max;
    19         }
    20         return max;
    21     }
    22 }

    程序结果:

  • 相关阅读:
    hdu
    如何在maven中的项目使用tomcat插件
    Intellij IDEA 像eclipse那样给maven添加依赖,且Intellij idea里在pom.xml里添加Maven依赖,本地仓库下拉列表显示包很少的血的经验
    DataTables warning: table id=costitemProject
    Navicat Premium Mac 12 破解
    mac显示隐藏的文件
    tomcat7下载地址
    mac同时安装jdk7和jdk8
    屏蔽datatable错误提示
    mac上配置java jdk环境
  • 原文地址:https://www.cnblogs.com/zhangboy/p/6473873.html
Copyright © 2011-2022 走看看