最近一直在刷lettcode上的算法题目,坚持每天一题,收获还是颇丰的。今天这道题目在lettcode上提交成功。下面把代码贴在下面供各位借鉴。
class Solution(object):
def wordPattern(self, pattern, strs):
lits = []
strs = strs.split()
strts = []
number=0
if len(pattern) != len(strs):
return False
else:
#将pattern的元素放到集合中(去重)
lit = set(pattern)
for j in lit:
#将lit中每个相同字符的位置存入lits列表中(lits是一个含列表的列表)
lits.append([i for i,v in enumerate(pattern) if v==j])
#将strs的元素放到集合中(去重)
st=set(strs)
for h in st:
#将st中每个相同元素的位置存入strts列表中(strts是一个含列表的列表)
strts.append([i for i,v in enumerate(strs) if v==h])
for h in lits:
#判断在pattern中的相同元素的位置是否在strs中能够找到
if h in strts:
#如果含有,则number+1
number+=1
#将number与lits的长度作比较,相等则匹配成功,否则失败
if number == len(lits):
return True
else:
return False