890. 查找和替换模式

单词模式匹配问题详解:字母排列的双射映射

题目描述

给定一个字符串数组 words 和一个模式字符串 pattern,请找出 words 中所有与 pattern 匹配的单词。

匹配的定义:

如果存在一个字母排列 pp,将模式 pattern 中的每个字母 xx 替换为 p(x)p(x) 后,能够得到某个单词,那么该单词就匹配模式。

换句话说,模式中的每个字母对应单词中的唯一字母,且单词中的字母也只能被模式中唯一字母映射,满足双射(一一对应且互逆)。


解题分析

本质上,这是一个判断两个字符串是否存在一一映射关系(双射)的经典问题。

给定 patternword,我们需要验证:

  • pattern 中的每个字母映射到 word 中唯一的字母;
  • word 中的每个字母也只能对应 pattern 中唯一的字母。

如果满足这个双向唯一映射,则认为二者匹配。


解题方法

1. 双向映射字典

维护两个哈希表:

  • p_to
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值