lettcode算法设计题290--单词模式

最近一直在刷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

猜你喜欢

转载自blog.csdn.net/qq_41983562/article/details/89461255
今日推荐