前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【leetcode刷题】T41-单词模式

【leetcode刷题】T41-单词模式

作者头像
木又AI帮
修改2019-07-18 10:02:26
3940
修改2019-07-18 10:02:26
举报
文章被收录于专栏:木又AI帮木又AI帮

【英文题目】(学习英语的同时,更能理解题意哟~)

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

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

Example 1:

代码语言:javascript
复制
Input: pattern = "abba", str = "dog cat cat dog"
Output: true

Example 2:

代码语言:javascript
复制
Input:pattern = "abba", str = "dog cat cat fish"
Output: false

【中文题目】

给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。

这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。

示例1:

代码语言:javascript
复制
输入: pattern = "abba", str = "dog cat cat dog"
输出: true

示例 2:

代码语言:javascript
复制
输入:pattern = "abba", str = "dog cat cat fish"
输出: false

【思路】

比较pattern的每个字符以及str的每个单词是否一一对应即可。

【代码】

python版本

代码语言:javascript
复制
class Solution(object):
    def wordPattern(self, pattern, str):
        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """
        strls = str.split()
        if len(strls) != len(pattern):
            return False
        d = {}
        dr = {}
        for i, p in enumerate(pattern):
            # 要求d[p] == strls[i] and dr[strls[i]] == p
            if p not in d:
                d[p] = strls[i]
            elif d[p] != strls[i]:
                return False
            if strls[i] not in dr:
                dr[strls[i]] = p
            elif dr[strls[i]] != p:
                return False
        return True
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档