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))
  • 相关阅读:
    JAXB基本使用
    Spring MVC手札
    Oracle创建表空间和表
    oracle删除表,让整个表从数据库中彻底消失
    oracle创建用户操作
    查看运行时某个java对象占用JVM大小及通过idea查看java的内存占用情况
    如何查看java进程
    win10下查看进程,杀死进程
    js计算两个时间相差天数
    windows 端口号占用和解决方法
  • 原文地址:https://www.cnblogs.com/lingxia/p/7931609.html
Copyright © 2011-2022 走看看