工程师网站建设,杭州软件开发制作,网站开发的要求,企业管理咨询收费方案明细1.1字母异位词分组
给你一个字符串数组#xff0c;将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词指的是由重新排列源单词的所有字母得到的一个新单词。
输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,…1.1字母异位词分组
给你一个字符串数组将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词指的是由重新排列源单词的所有字母得到的一个新单词。
输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]
互为字母异位词的两个字符串进行排序之后得到的字符串一定是相同的
代码
import collectionsclass question:def groupAnagrams(self,strs):mpcollections.defaultdict(list) #{key:[v1,v2,v3]}for st in strs:key.join(sorted(st))mp[key].append(st)return list(mp.values())qquestion()
strs[eat, tea, tan, ate, nat, bat]
print(q.groupAnagrams(strs))1.2最长连续数列
给定一个未排序的整数数组 n u m s nums nums找出数字连续的最长序列不要求序列元素在原数组中连续的长度。算法的时间复杂度为 O(n) 。
输入nums [100,4,200,1,3,2] 输出4 解释最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。
代码
class question:def longestConsecutive(self,nums):longest_streak0nums_setset(nums) #去除重复的元素for num in nums_set:if num-1 not in nums_set: #从第一个最小的开始curent_numnumcurent_streak1while curent_num1 in nums_set:curent_num1curent_streak1longest_streakmax(longest_streak,curent_streak)return longest_streakqquestion()
nums [100,4,200,1,3,2]
print(q.longestConsecutive(nums))