Leetcode日记 290. 单词规律 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配

Leetcode日记 290. 单词规律 给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配

给定一种规律 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 中每个单词都被 单个空格 分隔

解题思路

  • 一看到相互匹配就想到了字典,但又一种可能需要我们考虑
    a->dog
    b->dog
  • 这并不遵循相同的规律,但在一个字典的情况下还是会匹配成功,所以我建立了两个字典来进行匹配。
python 复制代码
pattern = "abba"
s = "dog cat cat dog"
class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        pattern_ =  list(pattern)
        s_ = s.split(" ")
        if len(pattern_) != len(s_) :
            return False
        dic1 = {}
        dic2 = {}
        for i in range(len(s_)) :
            if s_[i] not in dic1 :
                dic1[s_[i]] = pattern_[i]
            else :
                if dic1[s_[i]] != pattern_[i] :
                    return False
            if pattern_[i] not in dic2 :
                dic2[pattern_[i]] = s_[i]
            else :
                if dic2[pattern_[i]] != s_[i] :
                    return False
        return True
        
        
a = Solution().wordPattern(pattern,s)
print(a)
  • 通过,证明两个字典判断匹配的方法是可以的

制作不易,感谢三连,谢谢啦

相关推荐
冷雨夜中漫步7 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴7 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再7 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
颜酱8 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919109 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi9878389 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
喵手9 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_944934739 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy9 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
DuHz9 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理