• python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串


    1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件,

    第一个字母和最后一个字符是第一次重复

    这个子字符串的中间字母没有重复

    这个子字符串是满足条件里面的最长的

    如:

    adsasadmasd

    中满足条件的是dmasd

    import re

    def maxsubstring(s):

        res_list=[]

        max_len=0

        for i in range(len(s)):

            index=s[i+1:].find(s[i])

            if index !=-1:

                find_str=s[i:i+index+2]  #找出第一个字母和最后一个字母第一次重复的

                if not re.findall(r'(w).*?(1)',find_str[1:-1]):   #过滤掉中间重复的字母

                    if len(find_str)>max_len:    #找出最长的字符串

                        max_len=len(find_str)

                        res_list=[]

                        res_list.append(find_str)

                    elif len(find_str)==max_len:  #最长的字符串可能有多个

                        res_list.append(find_str)

                    else:

                        pass

        return res_list

    if __name__=="__main__":

        s = 'adsasadmasd'

        print(maxsubstring(s))

  • 相关阅读:
    hadoop集群部署入门(传智Hadoop学习)
    遇到问题了!
    MD5和TreeView的学习
    今天晚上完成了一个登录功能
    第一次来到博客园!
    单元测试--测?
    单元测试-公司实习1
    Mariadb数据库小结
    [奋斗的人生] 学习,总结,感恩,回馈
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/reyinever/p/10134704.html
Copyright © 2020-2023  润新知