leetcode - 290. Word Pattern

这篇具有很好参考价值的文章主要介绍了leetcode - 290. Word Pattern。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Description

Given a pattern and a string s, find if s follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s.

Example 1:

Input: pattern = "abba", s = "dog cat cat dog"
Output: true

Example 2:

Input: pattern = "abba", s = "dog cat cat fish"
Output: false

Example 3:

Input: pattern = "aaaa", s = "dog cat cat dog"
Output: false

Constraints:

1 <= pattern.length <= 300
pattern contains only lower-case English letters.
1 <= s.length <= 3000
s contains only lowercase English letters and spaces ' '.
s does not contain any leading or trailing spaces.
All the words in s are separated by a single space.

Solution

Use hashmap to map pattern to s

Time complexity: o ( n ) o(n) o(n)
Space complexity: o ( n ) o(n) o(n)文章来源地址https://www.toymoban.com/news/detail-492534.html

Code

class Solution:
    def wordPattern(self, pattern: str, s: str) -> bool:
        s = s.split(' ')
        if len(pattern) != len(s) or len(set(pattern)) != len(set(s)):
            return False
        p_to_s = {}
        for each_p, each_s in zip(pattern, s):
            if each_p not in p_to_s:
                p_to_s[each_p] = each_s
            elif p_to_s[each_p] != each_s:
                return False
        return True

到了这里,关于leetcode - 290. Word Pattern的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Bridge Pattern

    桥接模式(Bridge Pattern),旨在将抽象部分和实现部分解耦,使它们可以独立地变化。该模式通过将抽象和实现分离,使它们可以独立地进行扩展和修改,同时通过桥接(Bridge)将它们连接起来。 将一个事物原本耦合在一起的东西,通过定义成抽象和实现两个维度,做到解耦

    2024年02月10日
    浏览(33)
  • 策略模式【Strategy Pattern】

    刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题, 嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子 的。 1 先说这个场景中的要素: 三个妙计 一个锦囊 一个赵云 妙计

    2024年02月13日
    浏览(39)
  • 桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。桥接模式通过组合而不是继承来实现这种分离。 桥接模式的主要思想是将抽象和实现分离,让它们可以独立地变化。抽象部分包含高层逻辑,而实现部分包含底层实

    2024年02月15日
    浏览(39)
  • 原型模式(Prototype Pattern)

    原型模式(Prototype Pattern)是一种创建型设计模式,它用于通过复制现有对象来创建新对象,而无需依赖显式的构造函数。 在原型模式中,我们创建一个原型对象,并通过复制该原型对象来创建新的对象。这样做的好处是,我们可以避免创建对象时的复杂实例化过程,而是通

    2024年02月15日
    浏览(47)
  • 代理模式【Proxy Pattern】

    什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被 代理的人能干活呀。 举例子: 比如西门庆找潘金莲,那潘金莲不好意

    2024年02月12日
    浏览(41)
  • core_pattern

    /proc/sys/kernel/core_pattern 参数用来设置core文件保存位置或文件名,只有文件名时,则保存在应用程序的运行目录下 永久打开生成Core文件的步骤: 1、设置core文件的大小不受限制。 2、ulimit -c校验是否设置成功(如果是0,说明生成core文件开关为关闭) vi /etc/security/limits.conf (使

    2023年04月11日
    浏览(26)
  • Pattern类,Matcher类

    目录 1 Pattern类 2 Matcher类 2.1 matchers( )和 lookingAt( ) 2.2 find( ),groupCount( )和group( ) 2.3 start( )和end( )  2.4 replaceFirst( )和replaceAll( )         在进行正则匹配时,\\\" 正则字符串 \\\"会被编译成Pattern对象保存在内存中,以\\\" 待匹配字符串 \\\"作为参数通过Pattern对象创建出Matcher对象,然后对匹配结

    2023年04月22日
    浏览(13)
  • 策略模式(Strategy Pattern)

      在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护

    2024年02月05日
    浏览(37)
  • 命令模式(Command Pattern)

    一、定义 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 将一个请求封装为一个对象,从而使你可用

    2024年02月06日
    浏览(37)
  • 原型模式(Prototype Pattern)

    原型模式(Prototype Pattern)结构较为简单,它是一种特殊的创建型模式, 当需要创建大量相同或者相似对象时 ,可以 通过对一个已有对象的复制获取更多对象 。Java语言提供了较为简单的原型模式解决方案,只需要创建一个原型对象,然后通过在类中定义的克隆方法复制自己

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包