有效的字母异位词
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]