给定pattern和字符串str,判断str是否满足同一个模式
这里的满足指的是全匹配,例如, pattern
里的每个字母和字符串 str
中的每个非空单词之间存在着双向连接的对应模式
Example 1:
Input: pattern = "abba", str = "dog cat cat dog" Output: true
Example 2:
Input:pattern = "abba", str = "dog cat cat fish"Output: false
Example 3:
Input: pattern = "aaaa", str = "dog cat cat dog" Output: false
Example 4:
Input: pattern = "abba", str = "dog dog dog dog" Output: false
注意:
假设pattern只包含小写字母,pattern包含了单个空格的小写字母
1:该题与"同构字符串"类似,不过同构字符串保证两个字符串等长,本题不等长
def wordPattern(self, pattern, str):
"""
:type pattern: str
:type str: str
:rtype: bool
"""
wordList = str.split(" ")
patternList = list(pattern)
if len(wordList) != len(patternList):
return False
return len(set(wordList)) == len(set(patternList)) == len(set(zip(wordList, patternList)))
算法题来自:https://leetcode-cn.com/problems/word-pattern/description/