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

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

示例1:

输入: pattern = "abba", str = "dog cat cat dog"
输出: true

示例 2:

输入:pattern = "abba", str = "dog cat cat fish"
输出: false

示例 3:

输入: pattern = "aaaa", str = "dog cat cat dog"
输出: false

示例 4:

输入: pattern = "abba", str = "dog dog dog dog"
输出: false

说明:
你可以假设 pattern 只包含小写字母, str 包含了由单个空格分隔的小写字母。

class Solution:def wordPattern(self, pattern, str):""":type pattern: str:type str: str:rtype: bool"""pattern_len=len(pattern)str_list = str.split(' ')str_len = len(str_list)if pattern_len != str_len:return Falseif len(set(pattern)) != len(set(str.split(' '))):return Falseresult = {}for i in range(pattern_len):if pattern[i] not in result:result[pattern[i]] = str_list[i]if pattern[i] in result:if result[pattern[i]] != str_list[i]:return Falsereturn True


转载于:https://www.cnblogs.com/flashBoxer/p/9532417.html

【leetcode 简单】 第七十七题 单词模式相关推荐

  1. 【leetcode 简单】第十七题 x 的平方根

    实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例 1: 输入: 4 输出: 2 示例 ...

  2. 【leetcode 简单】第十一题 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  3. LeetCode简单题之拼写单词

    题目 给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认 ...

  4. LeetCode简单题之最常见的单词

    题目 给定一个段落 (paragraph) 和一个禁用单词列表 (banned).返回出现次数最多,同时不在禁用列表中的单词. 题目保证至少有一个词不在禁用列表中,而且答案唯一. 禁用列表中的单词用小 ...

  5. LeetCode简单题之基于排列构建数组

    题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...

  6. LeetCode简单题之二进制矩阵中的特殊位置

    题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...

  7. LeetCode简单题之字符串中的单词数

    题目 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符. 请注意,你可以假定字符串里不包括任何不可打印的字符. 示例: 输入: "Hello, my name is John&q ...

  8. LeetCode简单题之检查字符串是否为数组前缀

    题目 给你一个字符串 s 和一个字符串数组 words ,请你判断 s 是否为 words 的 前缀字符串 . 字符串 s 要成为 words 的 前缀字符串 ,需要满足:s 可以由 words 中的 ...

  9. LeetCode简单题之检查两个字符串数组是否相等

    题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...

最新文章

  1. 2021年大数据ELK(十六):Elasticsearch SQL(职位查询案例)
  2. java 实现部门树_(java实现)哈夫曼(Huffman)树编码(自编压缩项目基础)
  3. html怎么改变一块区域颜色,更改HTML中所选区域的背景颜色/不透明度
  4. 计算机网络之传输层:6、TCP流量控制、滑动窗口协议
  5. PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.13. 事件系统
  6. IO流 练习 -- 文件夹的删除
  7. 死磕java_死磕 java同步系列之AQS终篇(面试)
  8. Reids 批量删除有相同前缀的keys
  9. 用ByteArrayOutputStream解决IO流乱码问题
  10. 分布式监控报警平台Centreon之:Centreon简介
  11. 从 XML 到 XPath
  12. Nginx 读写分离详解
  13. IOS学习笔记-UINavgationController
  14. 基于C51控制蜂鸣器
  15. 深度学习 个人理解使用余弦相似度对人脸图片识别的过程
  16. android 投影技术,激光虚拟投影 从谷歌眼镜谈IT整合之路
  17. 【蓝桥杯】——PCF8591模块
  18. 记一次Redis哨兵机制【主机挂了无法切换其他从机】的问题
  19. html5火苗特效代码,视频添加火焰特效 视频画面中加动态的火苗效果
  20. 高级Java开发招聘

热门文章

  1. c语言fseek128字节,C语言rewind和fseek函数的用法详解(随机读写文件)
  2. GitHub热榜第一:中国博士用 ArcGIS Dashboard开发可交互全球疫情地图,登上《柳叶刀》!...
  3. CVPR 2020 Oral:北大华为等提出只用加法的神经网络,重磅开源
  4. 深度学习(七十一)3D CNN时空特征学习
  5. centos7安装详细图解_CentOS7编译安装PHP7的详细教程(图文)
  6. Jenkins 流水线 获取git 分支列表_Jenkins扩展共享库进阶
  7. html5标签属性大全_HTML/HTML5 知识点思维导图
  8. JAVA 正则表达式 RegexUtil
  9. 基于Web的浮动图片墙
  10. Windows Server2012虚拟内存设置