242.有效的字母异位词
利用一个哈希表, s字符串中的字母出现一次哈希表对应位置+1, t字符串中的字母出现一次哈希表对应位置-1,如果最后哈希表全为0返回True
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
lst = [0] * 26
for i in s:
lst[ord(i) - ord('a')] += 1 #ord()返回ASCII码
for i in t:
lst[ord(i) - ord('a')] -= 1
for i in lst:
if i != 0:
return False
return True
349. 两个数组的交集
先存储一个数组中的所有元素进一个哈希表, 另一个数组中的元素再与该哈希表进行比较
字典中的get()方法: dict(key, value)
key: (必选) 指定选择的键
value: (可选)如果键不存在,则返回value的值
class Solution:
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
# 使用哈希表存储一个数组中的所有元素
table = {}
for num in nums1:
table[num] = table.get(num, 0) + 1
# 使用集合存储结果
res = set()
for num in nums2:
if num in table:
res.add(num)
del table[num]
return list(res)
202. 快乐数
判断重复过程中的平方和是否出现过即可
class Solution:
def isHappy(self, n: int) -> bool:
record = []
while n != 1:
n = sum(int(i) ** 2 for i in str(n))
if n in record:
return False
record.append(n)
return True
1. 两数之和
与上面349题的思路类似
enumerate函数:
for i, value in enumerate(sequence, start=0):
print(i, value)
sequence是要遍历的数据对象(列表, 元组, 字符串......)
start是可选参数,表示索引开始的数字, 默认是0
i是当前元素的索引, value是当前元素的值
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
record = dict()
for index, value in enumerate(nums):
if target - value in record:
return [index, record[target - value]]
record[value] = index
return []
参考文档: 代码随想录