题目:
方法:
此题目与LeetCode--Python解析【Isomorphic Strings】非常类似
因此也采用同样的思路来解
长度不同代表字数不同,直接返回False
然后定义两个dict
一个用来储存pattern中各字母出现的下标
另一个储存str中各单词出现的下标
key为字母或单词,value为下标
再通过一个循环比较字符串中重复出现的下标是否相同
class Solution:
def wordPattern(self, pattern, str):
"""
:type pattern: str
:type str: str
:rtype: bool
"""
x = str.split(' ')
if len(pattern) != len(x): return False
dict1 = {}
dict2 = {}
for i in range(len(x)):
if pattern[i] in dict1:
dict1[pattern[i]].append(i)
else:
dict1[pattern[i]] = [i]
if x[i] in dict2:
dict2[x[i]].append(i)
else:
dict2[x[i]] = [i]
if dict1[pattern[i]] != dict2[x[i]]:return False
return True