leetcode -- Algorithms -- 3_ Longest Substring Without Repeating Characters
Posted ReedyLi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode -- Algorithms -- 3_ Longest Substring Without Repeating Characters相关的知识,希望对你有一定的参考价值。
from itertools import permutations class Solution(object): def lengthOfLongestSubstring(self, s): temp = 0 new_list = [] new_string = [] all_sub = [] l = ‘‘ # get the new string without duplicate for i in range(len(s)): if s[i] not in new_list: new_list.append(s[i]) if len(new_list) == 1: temp = 1 else: for j in range (len(new_list),1,-1): all_sub += list(permutations(new_list,j)) #get all the combinations with list for k in range(len(all_sub)): for e in range(len(all_sub[k])): l += all_sub[k][e] new_string.append(l) l = ‘‘ for f in range(len(new_string)): try: if new_string[f] in s: temp = len(new_string[f]) raise ValueError except ValueError: return temp all_sub = [] return temp
But failed with time exceed. The one with better solution is shown as below:
class Solution: # @param {string} s # @return {integer} def lengthOfLongestSubstring(self, s): start_pos = 0 current_pos = -1 # consider blank string case max_length = 0 char_pos = {} for current_pos in range(len(s)): if s[current_pos] in char_pos and char_pos[s[current_pos]] >= start_pos : max_length = max(max_length, current_pos - start_pos) start_pos = char_pos[s[current_pos]] + 1 char_pos[s[current_pos]] = current_pos return max(max_length, current_pos - start_pos + 1)
Much simpler.
Ich denke, dass muss ich h?rter arbeiten. N?chste Station, Algorithms und Daten Strukturen !!
以上是关于leetcode -- Algorithms -- 3_ Longest Substring Without Repeating Characters的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode]-algorithms-String to Integer (atoi)
[LeetCode]-algorithms-Longest Palindromic Substring
[LeetCode]-algorithms-Longest Substring Without Repeating Characters
#leetcode-algorithms-4 Median of Two Sorted Arrays
leetcode-algorithms-92. Reverse Linked List II
leetcode-algorithms-109. Convert Sorted List to Binary Search Tree