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
相关推荐
talenteddriver9 分钟前
java: Java8以后hashmap扩容后根据高位确定元素新位置
java·算法·哈希算法
蓝晶之心17 分钟前
Linux rsync ssh方式数据备份
linux·运维·服务器
ss27324 分钟前
Java线程池全解:工作原理、参数调优
java·linux·python
跨境猫小妹33 分钟前
2025 TikTok Shop:从内容爆发到系统化深耕的商业跃迁
大数据·人工智能·算法·产品运营·亚马逊
不穿格子的程序员35 分钟前
从零开始写算法 —— 二叉树篇 1:二叉树的三种遍历(递归实现法)
算法·深度优先·二叉树遍历·fds
fengyehongWorld40 分钟前
Linux sudo命令
linux·运维·服务器
JiMoKuangXiangQu1 小时前
Linux 内存管理:页表管理简析
linux·mmu·内存管理·页表管理
WG_171 小时前
Linux:缓冲区_glibc封装
linux·运维·服务器
番知了1 小时前
Ubuntu 22.04 常用命令清单
linux·运维·ubuntu
子夜江寒1 小时前
逻辑森林与贝叶斯算法简介
算法·机器学习