题解 | #牛牛的串联子串游戏#

牛牛的串联子串游戏

https://www.nowcoder.com/practice/c1984371372b43f3b10bf6d0231520bb

#思路很简单,第一步:将s切成words格式的单词用1【】装起来,第二部:然后根据words里面的个数将1【】拆成words样式的2【】,这里用map来记录开始位置和拆好的2【】,第三步:通过排序好的words与2【】中的值对比,记录相同的键就是需要的答案。一边想一边写就可以解决问题
#coding:utf-8
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @param words string字符串一维数组 
# @return int整型一维数组
#
class Solution:
    def findSubstring(self , s , words ):
        res=[]
        num=len(words)
        n=len(words[0])
        l=len(s)
        k=l/n
        i=0
        while i<l-1:
            res.append(s[i:i+n])
            i=i+n
 #将s用[]装起来,按照每一个单词的长度拆开           
        map={}
        j=0
        while j<=k-num:
            st=[]
            for m in range(num):
                st.append(res[j+m])
            if j*n not in map:
                map.setdefault(j*n,sorted(st))
            else:
                map.setdefault(j*n,st)
            j+=1
        print(map)
# 用map记录每一个词语的开始位置key,还有后面words长度的[],记住sorted,后面还要对比   
        ress=[]
        for i in map.items():
            if i[1]==sorted(words):
                ress.append(i[0])
        print(ress)
        return(sorted(ress))
        # write code here

全部评论

相关推荐

咩咩子_:项目和图形引擎岗没啥关系,最好还是项目和岗位有相关度好点,不然真有面也不一定会问很多
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务