Q:
290. 单词模式
给定一种 pattern(模式)
和一个字符串 str
,判断 str
是否遵循相同的模式。
这里的遵循指完全匹配,例如, pattern
里的每个字母和字符串 str
中的每个非空单词之间存在着双向连接的对应模式。
示例1:
输入: pattern = "abba", str = "dog cat cat dog" 输出: true
示例 2:
输入:pattern = "abba", str = "dog cat cat fish" 输出: false
链接:https://leetcode-cn.com/problems/word-pattern/description/
思路:与205 同构字符串相同 https://blog.csdn.net/maka_uir/article/details/83412010
class Solution:
def wordPattern(self, pattern, str):
"""
:type pattern: str
:type str: str
:rtype: bool
"""
flag = []
if pattern == str:
return False
if len(pattern) != len(str.split()):
return False
dic = {}
temp = str.split()
for i in range(len(pattern)):
if pattern[i] in dic:
if dic[pattern[i]] != temp[i]:
return False
else:
if temp[i] in flag and pattern[i] not in dic:
return False
dic[pattern[i]] = temp[i]
flag.append(temp[i])
return True