
anagram 变位词题目一则
发布日期:2021-05-07 17:48:51
浏览次数:28
分类:精选文章
本文共 869 字,大约阅读时间需要 2 分钟。
1. 题目
给定一个字符串数组,返回一个数组,将所有同位词分组。同位词是指字母组成相同,但位置不同的单词。例如,给定 ["cars", "thing", "scar", "dog", "god", "arcs", "the"],返回 [ ["cars", "scar", "arcs"], ["thing"], ["dog", "god"], ["the"] ]。
2. 思路
对每个单词的字母进行排序,生成排序后的字符串作为字典键。例如,"cars" 和 "scar" 排序后都变成 "acrs"。然后将所有与相同键对应的单词存入列表中,最后将字典的值组成结果列表返回。
3. 实现
以下是实现代码:
def find_anagrams(words): # 将每个单词与其排序后的字符串配对 words_pair = zip(words, [str(sorted(w)) for w in words]) # 创建一个字典来存储同位词组 res_dict = {} for word, sorted_str in words_pair: if sorted_str not in res_dict: res_dict[sorted_str] = [] res_dict[sorted_str].append(word) # 返回字典的值列表,即为同位词组 return list(res_dict.values())# 示例使用words = ['cars', 'thing', 'scar', 'dog', 'god', 'arcs', 'the']result = find_anagrams(words)print(result) # 输出: [['cars', 'scar', 'arcs'], ['thing'], ['dog', 'god'], ['the']]
通过这种方法,可以高效地将同位词分组,确保每个单词的字母组成相同。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月24日 16时04分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
OpenJDK1.8.0 源码解析————HashMap的实现(一)
2019-03-05
MySQL-时区导致的时间前后端不一致
2019-03-05
2021-04-05阅读小笔记:局部性原理
2019-03-05
go语言简单介绍,增强了解
2019-03-05
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2019-03-05
MongoDB 快速扫盲贴
2019-03-05
one + two = 3
2019-03-05
sctf_2019_easy_heap
2019-03-06
PyQt5之音乐播放器
2019-03-06
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2019-03-06
SQL注入
2019-03-06
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2019-03-06
Problem 330A - Cakeminator (思维)
2019-03-06
LeetCode75 颜色分类 (三路快排C++实现与应用)
2019-03-06
C语言+easyX图形库的推箱子实现
2019-03-06
调试vs2019代码的流程
2019-03-06
脱壳与加壳-加壳-6-代码实现加密导入表
2019-03-06
Typora配置PicGo时,提示Failed to fetch
2019-03-06
bcolz的新操作
2019-03-06
zmq的send
2019-03-06