890.查找和替换模式

你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。

如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。

(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。)

返回 words 中与给定模式匹配的单词列表。

你可以按任何顺序返回答案。

示例:

输入:words = [“abc”,”deq”,”mee”,”aqq”,”dkd”,”ccc”], pattern = “abb”
输出:[“mee”,”aqq”]
解释:
“mee” 与模式匹配,因为存在排列 {a -> m, b -> e, …}。
“ccc” 与模式不匹配,因为 {a -> c, b -> c, …} 不是排列。
因为 a 和 b 映射到同一个字母。

利用哈希表构造映射模拟过程
给定字符串数组中的字符串如果和模式字符串形成双映射的话则该字符串与模式是匹配的,双射的意思是 一个字母和一个字母唯一对应,是双向的,由此我们易想到使用两个哈希表构造映射关系模拟该过程。
而这个过程又可以优化为使用数组来代替哈希表,因为本题中只有小写字母,可以用有限空间表示,如果是任意字符的话就必须使用哈希表了。
如果是任意字符,也可以使用一个Map和一个Set实现,使用Map构造单射,此时将加入Map的value放入Set中,如果遍历到的字符没有在Map的Key中,还需要判断对应模式的字符是否已经被使用过,也就是是否在Set中,如果Key不存在而模式中对应字符被使用过,该字符串也是不匹配的。
使用一个变量判断字符串是否遍历完,遍历完则加入结果,每次遍历一个字符串都要进行初始化。

Original: https://www.cnblogs.com/liangren-na/p/16437639.html
Author: 良人呐
Title: 890.查找和替换模式

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/587971/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • LOJ数列分块 9 题解

    (1.) 题意 给定一个长度 (n) 序列,每次查询区间 (l, r) 的众数。 (2.) 思路 如果边界是 ([l,r]),(l) 在第 (a) 块,(r) 在第 (b) 块,可…

    数据结构和算法 2023年6月12日
    0101
  • mysql报错:1030, ‘Got error 28 from storage engine’

    原因:mysql数据对应的磁盘空间不够了方法:删除一些文件相关命令:du df find Original: https://www.cnblogs.com/txtp/p/1666…

    数据结构和算法 2023年6月7日
    081
  • MAC Golang环境搭建

    下载golang 下载地址:https://golang.google.cn/dl/ 根据MAC左上角苹果图标->关于本机,即可查看芯片类型 安装golang 在 下载 中双…

    数据结构和算法 2023年6月8日
    070
  • Dreamoon Likes Coloring 【CF 1329 A】

    传送门 思路:”Dreamoon will choose a number p i pi from range 1 ,n −l i +1 and will paint …

    数据结构和算法 2023年6月7日
    083
  • 有效的括号 力扣——20. 有效的括号 思路: 定义一个栈用来存储左括号 定义一个字典,用来存放键值对右括号->左括号 循环遍历s中的括号,左括号存入栈中 当遇到第一个右括号…

    数据结构和算法 2023年6月7日
    0106
  • POJ 2110 Mountain Walking(二分 枚举 BFS)

    题目: ​ 给出一张(n * n(n \le 100))的地图,每个点都有一个点权((val \le 110)),可以任意选择路径,请问从(1, 1)走到(n, n)的路径中的 最…

    数据结构和算法 2023年6月12日
    062
  • C++ const_cast

    用法:const_cast(expression) 通过const_cast运算符,只能将const type转换为type,将const type&转换为type&amp…

    数据结构和算法 2023年6月7日
    078
  • P8135 [ICPC2020 WF] QC QC

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据结构和算法 2023年6月12日
    081
  • CF Edu124 F 题解

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据结构和算法 2023年6月12日
    078
  • Java并发编程之美

    简介 《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有…

    数据结构和算法 2023年6月16日
    091
  • [ubuntu18.04 python3.6] 清华源 CondaHTTPError: HTTP 000 CONNECTION

    问题 嫌官网源安装 jupyter notebook太慢,所以尝试修改为清华源,但每次在 Solving environment的时候就报错如下: 解决方法,修改conda配置信息…

    数据结构和算法 2023年6月16日
    0101
  • 如何离线安装posh-git

    不用上github 1、下载post-git离线安装包 2,用Powershell执行install.ps1 3.用管理员权限打开powershell,修改策略: set-exec…

    数据结构和算法 2023年6月16日
    0111
  • 类暗黑破坏神属性系统思路

    序言 暗黑破坏神,流放之路,火炬之光等经典RPG游戏有令人眼花缭乱的角色属性词缀和相应的机制,搭配修改角色属性的装备,技能,Buff等形成很多有趣的流派。此文提供一种类似游戏的角色…

    数据结构和算法 2023年6月8日
    0111
  • Rust双向链表

    节点的结构 指向节点的指针可能为空值,所以在最外层包裹一层 Option 一个节点可能存在被两个指针指向(前一个节点的 next 和后一个节点的 prev),指针需要用 Rc 包裹…

    数据结构和算法 2023年6月7日
    091
  • buuctf-level4

    下载附件打开后,发现是linux下的可执行文件,使用IDA(64)打开,发现与二叉树的遍历顺序有关,如图: 可以发现type1和type2函数即为关键的函数,进去查看发现: __i…

    数据结构和算法 2023年6月7日
    078
  • 手写数据库连接池

    📕数据库连接池项目 一、项目意义 在设计前先了解一下数据库连接池的作用: 除了在服务器端增加缓存服务器缓存常用的数据 之外(例如redis),还可以 增加连接池,来提高MySQL …

    数据结构和算法 2023年6月12日
    0113
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球