[Leetcode] 0003. 繰り返し文字のない最長部分文字列

Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク

中くらい


文字列を与える sの長さを求めます 最長 部分文字列 文字を繰り返さずに。

 

例 1:

入力: s = "abcabcbb"
出力: 3
説明: 答えは「abc」で、長さは 3 です。

例 2:

入力: s = "bbbbb"
出力: 1
説明: 答えは「b」で、長さは1です。

例 3:

入力: s = "pwwkew"
出力: 3
説明: 答えは「wke」で、長さは 3 です。答えは部分文字列である必要があることに注意してください。「pwke」は部分文字列ではなく部分シーケンスです。

 

制約:

  • 0 <= s.length <= 5 * 10 4
  • s 英語の文字、数字、記号、スペースで構成されます。

パイソン

				
					#時間計算量: O(n) #空間計算量: O(min(m,n)) from collections import Counter class ソリューション: def lengthOfLongestSubstring(self, s: str) -> int: chars = Counter() left = right = 0 res = 0 右 < len(s): r = s[right] chars[r] += 1 chars[r] > 1: l = s[left] chars[l] -= 1 左 += 1 res = max(res, right - left + 1) right += 1 return res Input = "abcabcbb" print(Solution().lengthOfLongestSubstring(Input))
				
			
ja日本語