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
相关推荐
tankeven几秒前
HJ137 乘之
c++·算法
add45a30 分钟前
C++中的观察者模式
开发语言·c++·算法
进击的小头33 分钟前
第13篇:基于伯德图的超前_滞后校正器深度设计
python·算法
leaves falling34 分钟前
二分查找:迭代与递归实现全解析
数据结构·算法·leetcode
旺仔.29135 分钟前
僵死进程及Linux文件操作 详解
linux·运维·服务器
做怪小疯子40 分钟前
Leetcode刷题——深度优先搜索(DFS)
算法·leetcode·深度优先
大数据AI人工智能培训专家培训讲师叶梓1 小时前
120B 数学语料 + GRPO 算法,DeepSeekMath 刷新开源大模型推理天花板
人工智能·算法·大模型·推理·deepseek·openclaw·openclaw 讲师
IMPYLH1 小时前
Linux 的 comm 命令
linux·运维·算法
薛定谔的悦1 小时前
嵌入式设备OTA升级实战:从MQTT命令到自动重启的全流程解析
linux·算法·ota·ems
杰克尼1 小时前
知识点总结--01
数据结构·算法