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

  • 相关阅读:
    Remote procedure call (RPC) redis使用
    python Redis使用
    python rabbitMQ有选择的接收消息(exchange type=direct)或者(exchange_type=topic) 
    pyhon rabbitMQ 广播模式
    python之RabbitMQ简单使用
    python selectors模块使用
    python IO多路复用之Select
    Java多个jdk安装切换
    IDM下载器
    联想小新安装win10
  • 原文地址:https://www.cnblogs.com/reyinever/p/10134704.html
Copyright © 2011-2022 走看看