一. 题目
-
题目
-
示例
二. 方法一: 哈希表
-
解题思路
-
解题代码
def wordPattern(self, pattern: str, str: str) -> bool: # 先将字符串按照空格拆分成数组 words = str.split(" ") result = {} # 如果pattern的长度和单词个数不相等, 则返回False if len(words) != len(pattern): return False # 遍历pattern for i in range(len(pattern)): if pattern[i] not in result: # 如果words对应位置的元素在map中, 则直接返回false if words[i] in result.values(): return False # 如果pattern 和 words 对应位置的元素都不在map中, 则直接插入 result[pattern[i]] = words[i] else: if result[pattern[i]] != words[i]: return False return True
-
分析
时间复杂度: O(n)
空间复杂度: O(n)