zoukankan      html  css  js  c++  java
  • python-又来练习题--输出一个字符串中最长的子字符串及其长度

    一、有个字符串 str= '$sd1#111$svda123!!!221&eSSDSyyyyyyDG^svda121^svda124^1111111111111'
    包含特殊字符、数字和字母,输出最长的子字符串和他的长度
    例如上面的字符串同时包含数字和字母的字符串是svda123,长度是7
    思路:
    1、先把特殊字符转换成固定字符#
    2、按照固定字符分割字符串生成lis
    3、获取lis中每一个的长度并生成第二个用来存储长度的len_lis
    4、获取长长度然后统计最长长度的数量
    5、如果只有数量是1的话直接通过下标获取lis的下标然后输出字符串和长度
    6、如果数量大于1就通过下标循环判断等于最长长度的长度然后输出字符串和长度
    str= '$sd1#111$svda123!!!221&eSSDSyyyyyyDG^svda121^svda124^1111111111111'
    import string
    for s in string.punctuation:
       if s in str:
          str = str.replace(s,'#')
    lis = str.split('#')
    len_lis=[]
    for  i in lis:
       len_lis.append(len(i))
    max_len= max(len_lis)
    max_len_count =len_lis.count(max_len)
    if max_len_count >1:
       for len in range(len(len_lis)):
          if len_lis[len] == max_len:
             print('最长的字符串是%s,最长的长度是%s'%(lis[len],max_len))
    else:
       index = len_lis.index(max_len)
       st = lis[index]
       print('最长的字符串是%s,长度是%s'%(st,max_len))

     二、如果输出的字符串必须同事包含数字和字母:

    分析:

    不过是加了一个条件就是最长的字符串必须同事包含数字和字母

    思路:
    1、先把特殊字符转换成固定字符#
    2、按照这个固定字符分割字符串并且判断是不是同时包含数字和字母将符合条件的放到lis中
    3、获取lis中每一个的长度并生成第二个用来存储长度的len_lis
    4、获取长长度然后统计最长长度的数量
    5、如果只有数量是1的话直接通过下标获取lis的下标然后输出字符串和长度
    6、如果数量大于1就通过下标循环判断等于最长长度的长度然后输出字符串和长度
    import string
    str= '$sd1#111$svda123!!!221&eSSDSyyyyyyDG^svda121^svda124^1111111111111'
    for s in string.punctuation:
         if s in str:
             str = str.replace(s,'#')
    lis = str.split('#')
    res_lis=[]#用来存放符合条件的字符串
    len_lis=[]#用来存放符合条件的字符串的长度
    for  i in lis:
        if   not i.isdigit() and  not i.isalpha() and len(i)>0:
            res_lis.append(i)
            len_lis.append(len(i))
    max_len = max(len_lis)
    max_len_count = len_lis.count(max_len)
    if  max_len_count >1:
        for e in range(len(len_lis)):
            if len_lis[e] == max_len:
                print('最长的字符串是%s,长度是%s' % (res_lis[e], max_len))
    else:
        index = len_lis.index(max_len)
        st = res_lis[index]
        print('最长的字符串是%s,长度是%s'%(st,max_len))
  • 相关阅读:
    web.xml中listener、 filter、servlet 加载顺序及其详解 从零开始
    网站运营之门外汉并且伪理解
    win7 旗舰版 64位注册dll(regsvr32)失败解决方法
    盖是乱盖,书童逆天之初创互联网企业常见弊病
    VirtualBox中安装Windows10
    jupyter导出pdf文件的方法
    com.ibm.mm.sdk.common.DKUsageError: DGL3616A: 发生意外的 SQL 错误; ICM7015: 在库服务器的 SQL 操作期间,发生意外错误。有关错误的详细信息,请参阅数据库文档。 (STATE) : [LS RC = 7015, SQL RC = 100
    Tomcat编译java文件没有同步问题
    Google APPS申请指南
    如何用C#语言构造蜘蛛程序
  • 原文地址:https://www.cnblogs.com/lingxia/p/7931609.html
Copyright © 2011-2022 走看看