每日一题20201216(290. 单词规律)

简介: 单词规律

290. 单词规律

10.jpg

image-20201216111049215

思路


首先要理解清楚题目的意思,就好像孙亚龙给卢本伟起外号一样,卢本伟的外号,大家都知道:五五开


但是你不能明着叫,所以你用aab进行代替,这个题目可以说很符合这个场景了!所以现在要做的是,判断五五开是不是aab,判断aab是不是五五开。


首先我们维护2个map, 一个存放a->五的映射关系, 一个存放五->a的映射关系。


为什么需要2个map, 你想,adb->五五开, 这样的映射,你只存储了a->五,并没有存储五->a,所以adb->五五开也能通过,但这不符合题意。


class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        # mp1: a -> wu
        mp1 = {}
        # mp2: wu -> a
        mp2 = {}
        # 切割字符串为数组
        b = s.split(" ")
        # 如果长度不一样 直接return False
        if len(pattern) != len(b):
            return False
        # 长度一样可以尽情zip
        for x, y in zip(pattern, b):
            # a -> wu 如果检测失败,直接return
            if mp1.get(x) is not None and mp1.get(x) != y:
                return False
            # wu -> a 如果检测失败, 直接return
            if mp2.get(y) is not None and mp2.get(y) != x:
                return False
            # 建立a->wu和wu->a的映射关系
            mp1[x] = y
            mp2[y] = x
        return True

11.jpg

image-20201216111901380


写完题解了,终于可以坐下了。




相关文章
|
5天前
leetcode-884:两句话中的不常见单词
leetcode-884:两句话中的不常见单词
16 0
|
5天前
|
算法
刷题专栏(二十):单词规律
刷题专栏(二十):单词规律
38 0
|
5天前
|
人工智能 算法 Java
每日一刷《剑指offer》字符串篇之编辑距离
每日一刷《剑指offer》字符串篇之编辑距离
48 0
每日一刷《剑指offer》字符串篇之编辑距离
|
9月前
|
算法 Java
LeetCode150道面试经典题--单词规律(简单)
给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律
49 0
|
10月前
|
算法 Java C++
leetcode单词接龙
leetcode单词接龙
|
10月前
|
算法 测试技术
蓝桥算法_单词分析-wordAnalysis
蓝桥算法_单词分析-wordAnalysis
|
11月前
洛谷P1019:单词接龙
洛谷P1019:单词接龙
65 0
|
11月前
|
存储 算法 前端开发
前端算法-单词规律
前端算法-单词规律
|
11月前
|
算法
【基础算法】浅浅刷个小题 # 找不同 # 字符串中的单词数 # 重新排列字符串 #
【基础算法】浅浅刷个小题 # 找不同 # 字符串中的单词数 # 重新排列字符串 #
|
机器学习/深度学习
移动字母(蓝桥杯—12年困难题)
移动字母(蓝桥杯—12年困难题)
76 0