【数据结构】290、763

290、单词规律

在这里插入图片描述
这小破题要考虑到
(1)pattern和str大小不一致
(2)一对多
(3)多对一

class Solution(object):
    def wordPattern(self, pattern, s):
        """
        :type pattern: str
        :type s: str
        :rtype: bool
        """
        y = s.split(' ')
        if len(pattern)!=len(y):
            return False
        dict_xy = {}
        for i in range(len(pattern)):
            if pattern[i] not in dict_xy.keys():
                dict_xy[pattern[i]] = y[i]
            else:
                if dict_xy[pattern[i]]!=y[i]:
                    return False
        value = list(dict_xy.values())
        value_i = len(value)
        value_j = len(list(set(value)))
        return value_j==value_i

把str通过‘ ’分开:
y = s.split(’ ')

763、划分字母区间

在这里插入图片描述
这题还是非常简单的,其实就是之前说的区间,找到两个完全不包含的区间就可以了哟~
上代码

class Solution(object):
    def partitionLabels(self, s):
        """
        :type s: str
        :rtype: List[int]
        """
        dict_v = {}
        v = []
        for i in range(len(s)):
            if s[i] not in dict_v.keys():
                k = []
                k.append(i)
                dict_v[s[i]] = k
                v.append(s[i])
            else:
                dict_v[s[i]].append(i)
        h = 0 #abcdefghijkl
        # {b:[1,3,5]}
        start = 0
        end = 0
        result = []
        num = 0
        while h<=len(v):
            if h == len(v):
                result.append(end - start + 1)
            else:
                if dict_v[v[h]][0]>end:
                    result.append(end - start+1)
                    end = dict_v[v[h]][-1]
                    start = dict_v[v[h]][0]
                else:
                    start = min(dict_v[v[h]][0],start)
                    end = max(dict_v[v[h]][-1],end)#8#5
            h = h+1

        return result

加一句题外话 set(list())是无序的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值