题目链接
我的题解:
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
# 思路是这样:遍历数组中元素,并对每一个元素进行排序,定义一个空字典
hashtable={
}
for oldstr in strs:
sortedstr=''.join(sorted(oldstr))
if sortedstr not in hashtable:
hashtable[sortedstr]=[]
hashtable[sortedstr].append(oldstr)
else:
hashtable[sortedstr].append(oldstr)
result=[]
for _,needlist in hashtable.items():
result.append(needlist)
return result
思路:对每个字符串进行排序,然后加入哈希表中
以下是我在做这道题时查询的一些问题:
1.如何把字典键值对中的值设置为列表?
# 创建一个空字典
my_dict = {
}
# 向空字典添加一个列表作为值
my_dict['my_list'] = []
# 向列表中添加元素
my_dict['my_list'].append(1)
my_dict['my_list'].append(2)
my_dict['my_list'].append(3)
# 输出更新后的字典
print(my_dict)
2.sort和sorted的区别
sort是列表对象的方法,对列表对象就地排序,返回一个新的列表
sorted是内置函数,接收一个可排序的对象作为参数,不会对原列表排序,返回的是一个列表,注意,返回列表的意思是,即使你把一个字符串作为参数,返回的依然是一个排好序的每一个字母的列表!
my_string = "hello"
sorted_string = sorted(my_string)
print(sorted_string) # 输出: ['e', 'h', 'l', 'l', 'o']
如果想获得排序后的字符串需要这样做,使用join方法:
sorted_string = sorted(my_string)
sorted_str = ''.join(sorted_string)
print(sorted_str) # 输出: 'ehllo'
3.如何遍历哈希表?
- 遍历键值对:hashtable.items()
- 遍历键:hashtable.keys()
- 遍历值:hashtable.values()
my_dict = {
'a': 1, 'b': 2, 'c': 3}
for key, value in my_dict.items():
print(f"Key: {
key}, Value: {
value}")
my_dict = {
'a': 1, 'b': 2, 'c': 3}
for key in my_dict.keys():
print(f"Key: {
key}")
my_dict = {
'a': 1, 'b': 2, 'c': 3}
for value in my_dict.values():
print(f"Value: {
value}")