leetcode之Word Pattern

本文介绍了一种模式匹配算法,该算法通过将模式串中的字符替换成字符串的方式进行匹配,并确保两个不同字符的替换不会相同。文章提供了一个具体的Python实现案例,帮助读者理解整个算法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题是要求把字母换成一个字符串之后,比较2者是否相等。注意在替换的过程中直接在原字符串上替换有可能导致前面替换的对后面产生影响,且2个不同的字母的替换不能相同。代码如下:

class Solution(object):
    def wordPattern(self, pattern, str):
        """
        :type pattern: str
        :type str: str
        :rtype: bool
        """
        q = list(pattern)
        p = set(q)
        c = []
        str1 = str.split(' ')
        compare = ''
        # print str1
        for i in p:
            a = pattern.index(i)
            if a > len(str1) -1:
                return False
            b = str1[a]
            if b == compare:
                return False
            for j in range(len(q)):
                if j not in c:
                    if q[j] == i:
                        q[j] = b
                        c.append(j)
            compare = b
        if q == str1:
            return True
        else:
            return False


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值