有效的字母异位词
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
record=[0]*26 #用数组做哈希表题目,是因为题目限制了数值的大小
#统计字符串s中出现的位置以及次数
for i in range(len(s)):
record[ord(s[i])-ord('a')]+=1
for i in range(len(t)):
record[ord(t[i])-ord('a')]-=1
#统计record中是否全为零
for i in range(26):
if record[i]!=0:
return False
return True
两个数组的交集
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
#set将数组转化成集合,并去重 &求交集符号 |求并集符号
return list(set(nums1)&set(nums2))
快乐数:
class Solution:
def isHappy(self, n: int) -> bool:
def calculate_happy(n):
sum=0
while n:
sum+=(n%10)**2 #取模,也就是各位数
n=n//10
return sum
record=set()
while True:
n=calculate_happy(n)
if n==1:
return True
if n in record:
return False
else:
record.add(n)
两数之和
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
#当我们查询一个元素是否出现过,或者一个元素是否出现在集合里,首先应该想到使用哈希表
map_record=dict()
for idx,val in enumerate(nums):
if target-val not in map_record:
map_record[val]=idx
else:
return [map_record[target-val],idx]
本文介绍了四种常见的算法问题的Python解决方案,包括判断两个字符串是否为字母异位词、找出两个整数数组的交集、判断一个数是否为快乐数以及解决两数之和的问题。通过哈希表、集合操作等数据结构和算法,实现了高效且简洁的代码实现。
180

被折叠的 条评论
为什么被折叠?



