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

3. Longest Substring Without Repeating Characters

时间:2020-01-17 15:08:09      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:hash   sts   length   Plan   get   not   shm   cte   sub   

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.


 1 class Solution {
 2     public int lengthOfLongestSubstring(String s) {
 3         if (s.length() == 0) return 0;
 4         char []s1 = s.toCharArray();
 5         int ans = 1;
 6         Map<String, Integer> map = new HashMap<>();
 7         int num = 0;
 8         for (int i = 0; i < s.length(); ++i) {
 9             String tc = String.valueOf(s1[i]);
10             if (map.containsKey(tc)) {
11                 int temp = i - map.get(tc);
12                 if (temp <= num) {
13                     num = temp;
14                 } else {
15                     num++;
16                 }
17                 
18             } else {
19                 num++;
20             }
21             map.put(tc, i); 
22                 
23             
24             if (num > ans) {
25                 ans = num;
26             }
27         }
28         return ans;
29     }
30 }

 

3. Longest Substring Without Repeating Characters

标签:hash   sts   length   Plan   get   not   shm   cte   sub   

原文地址:https://www.cnblogs.com/hyxsolitude/p/12205797.html

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