【力扣100】2.字母异位词分组

题目链接
我的题解:

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.如何遍历哈希表?

  1. 遍历键值对:hashtable.items()
  2. 遍历键:hashtable.keys()
  3. 遍历值: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}")

相关推荐

  1. 100】2.字母分组

    2023-12-07 11:50:06       66 阅读
  2. 49.字母分组

    2023-12-07 11:50:06       52 阅读
  3. 热题100_哈希_49_字母分组

    2023-12-07 11:50:06       60 阅读
  4. 每日OJ题_哈希表⑤_49. 字母分组

    2023-12-07 11:50:06       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 11:50:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 11:50:06       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 11:50:06       87 阅读
  4. Python语言-面向对象

    2023-12-07 11:50:06       96 阅读

热门阅读

  1. openCv颜色矩

    2023-12-07 11:50:06       52 阅读
  2. js实现多个word合并,使用docx-merger库

    2023-12-07 11:50:06       54 阅读
  3. Xubuntu16.04系统中使用RTL8822CE8821无线网卡

    2023-12-07 11:50:06       195 阅读
  4. websocket

    2023-12-07 11:50:06       52 阅读
  5. 米贸搜|Facebook海外企业户怎么引流到line上

    2023-12-07 11:50:06       59 阅读