给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

题目链接:力扣题目链接
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
mp = defaultdict(list)
for i in strs:
# 把每个单词特征存好
pre = [0] * 26
for j in i:
pre[ord(j) - ord("a")] += 1
# 找之前是否出现过
mp[tuple(pre)].append(i)
return list(mp.values())
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

题目链接:力扣题目链接
class Solution:
def longestConsecutive(self, nums: List[int]) -> int:
if not nums:
return 0
nums = list(set(nums)) # 去除重复元素
nums.sort()
l = 1
res = 1
for i in range(len(nums)):
cur = nums[i]
if (i+1)<len(nums) and nums[i+1] == cur+1:
l += 1
res = max(res, l)
else:
l = 1
return res
给定一个字符串 s ,请你找出其中不含有重复字符的 最长
子串的长度。

题目链接:力扣题目链接
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
left, right = 0, 0
length = 0
dic = {}
while right < len(s):
if s[right] in dic and dic[s[right]] >= left:
left = dic[s[right]] + 1
dic[s[right]] = right
length = max(length, right - left + 1)
right += 1
return length
心得:积累算法还是要多刷题,在进步了!~