zoukankan      html  css  js  c++  java
  • 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))

  • 相关阅读:
    解决吞吐性能问题时的思路
    mysql left join转inner join
    TypeScript 在开发应用中的实践总结
    antd+react项目迁移vite的解决方案
    客官,.NETCore无代码侵入的模型验证了解下
    v-html可能导致的问题
    IDA反汇编EXE添加一个启动时的消息框
    OD反汇编EXE添加一个启动时的消息框
    Vue中的三种Watcher
    React中diff算法的理解
  • 原文地址:https://www.cnblogs.com/reyinever/p/10134704.html
Copyright © 2011-2022 走看看