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))

  • 相关阅读:
    维度穿梭
    演绎与抽象
    幻想的功能
    深层探宝
    内存游戏
    函数内功
    共享与私有的变量
    参数的格式
    功能模拟与功能实现
    【Oracle】基础知识查漏补缺
  • 原文地址:https://www.cnblogs.com/reyinever/p/10134704.html
Copyright © 2011-2022 走看看