重启人生1.0-day6: 242.有效的字母异位词 ;349. 两个数组的交集 ;202. 快乐数;1. 两数之和
242.有效的字母异位词
def isAnagram(self, s: str, t: str) -> bool:
nums = [0] * 26 # 定义1个数组,对应26个英文字母下标
for i in s:
nums[ord(i) - ord("a")] += 1 # ord(i) - ord("a")找到字母对应的下标
for i in t:
nums[ord(i) - ord("a")] -= 1
for x in nums:
if x != 0:
return False
return True
- 两个数组的交集
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
return list(set(nums1) & set(nums2))
- 快乐数
def isHappy(self, n: int) -> bool:
set_nums = set()
while n != 1:
if Solution().squSum(n) in set_nums:
return False
else:
set_nums.add(Solution().squSum(n))
n = Solution().squSum(n)
Solution().squSum(n)
return True
def squSum(self, n) -> int:
sum = 0
while n:
n, r = divmod(n, 10)
sum += r**2
return sum
- 两数之和
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict_num = {}
for i, num in enumerate(nums):
value = target - num
if value in dict_num:
return [i, dict_num.get(value)]
dict_num[num] = i