LeetCode 290. 单词规律(python)

LeetCode 290. 单词规律(python)

class Solution(object):
    def wordPattern(self, pattern, str):
        word = list(pattern)  # word表示字母
        words = str.split(' ')  #words表示单词
        num = 0   #用于记录每次循环通过的次数
        a = set(word);b = set(words)  #将word列表和words列表转换成集合
        if len(a) != len(b):
            return Flase  #如果两个集合中的元素种类个数不同,则返回Flase
        if len(word) != len(words):
            return Flase  #如果两个列表中的元素个数不同,则返回Flase   
            """以上两步是为了确保(1.)元素种类个数相同,比如:都只用两种啊a,b和dog,cat。
            (2.)两个生成的列表word,words中元素个数相同,如果不同,肯定无法对应"""
        for i in range(len(word) - 1):#只有0,1,2,没有3,如果有3,则i+1就等于4超出索引范围
            if (word[i] != word[i + 1]) and (words[i] == words[i + 1]):  
                return Flase   #word中的前一个和后一个不同,而words中的前一个和后一个相同,则返回Flase
                break
            elif (word[i] == word[i + 1]) and (words[i] != words[i + 1]):
                return Flase  #与上一步同理
                break
            else:
                num += 1      #如果每次循环word和words的类型都相同,则num+1
        if num == len(words) - 1:
            return True

执行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值