LeetCode 290. 单词规律

LeetCode 290. 单词规律

给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。

这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。

示例1:

输入: pattern = "abba", s = "dog cat cat dog"

输出: true

示例 2:

输入:pattern = "abba", s = "dog cat cat fish"

输出: false

示例 3:

输入: pattern = "aaaa", s = "dog cat cat dog"

输出: false

提示:

1 <= pattern.length <= 300

pattern 只包含小写英文字母

1 <= s.length <= 3000

s 只包含小写英文字母和 ' '

s 不包含 任何前导或尾随对空格

s 中每个单词都被 单个空格 分隔

哈希表,双射关系

python 复制代码
class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        length = len(pattern)
        sub_strs = s.split()
        if len(pattern) != len(sub_strs):
            return False
        d1, d2 = {}, {}
        for i in range(length):
            if pattern[i] in d1:
                if d1[pattern[i]] != sub_strs[i]:
                    return False
            if sub_strs[i] in d2:
                if d2[sub_strs[i]] != pattern[i]:
                    return False
            d1[pattern[i]] = sub_strs[i]
            d2[sub_strs[i]] = pattern[i]
        return True
相关推荐
有一个好名字1 分钟前
力扣:多数元素
算法·leetcode·职场和发展
小茬粥7 分钟前
COLT_CMDB_linux_userInfo_20250508.sh修复历史脚本输出指标信息中userName与输出信息不一致问题
linux·运维·服务器
pystraf14 分钟前
P2572 [SCOI2010] 序列操作 Solution
数据结构·算法·线段树·洛谷
weixin_4365250719 分钟前
芋道框架 账号未登录、租户标识未传递
java·linux·服务器
吗喽对你问好25 分钟前
华为5.7机考-最小代价相遇的路径规划Java题解
算法·华为
dancing99928 分钟前
CentOS 7 系统下安装 OpenSSL 1.0.2k 依赖问题的处理
linux·运维·centos
Trent198531 分钟前
影楼精修-牙齿美型修复算法解析
算法
mzak1 小时前
Linux系统(OpenEuler22.03-LTS)部署FastGPT
linux·人工智能·fastgpt
愚润求学1 小时前
【Linux】自定义shell的编写
linux·运维·服务器·开发语言·c++·笔记
网硕互联的小客服2 小时前
如何解决 Linux 系统文件描述符耗尽的问题
linux·运维·chrome