• Python习题-输出一个字符串中最长的子字符串及其长度


    描述:有个字符串$sd1#111$svda123!!!221&eSSDSDG,包含特殊字符、数字和字母,输出最长的子字符串和他的长度
    #例如上面的字符串包含数字字母的字符串是svda123,长度是7
    需求分析:
    1、先把这个字符串里面的特殊字符替换成一个固定的字符串, 。 repalce
    2、按照这个固定的字符串分割 spilt
    3、list,循环这个list,判断list的每个元素是否包含数字和字母
    4、判断长度,最长的留下了,打印
    5、用了俩list,一个list存符合条件的字符串,第二list存字符串的长度
    6、先取到最大长度,然后判断最大长度的个数,>1,然后再取长度的下标
    7、再去字符串的list里面取值

    str= '$sd1#111$svda123!!!221&eSSDSDG^svda121^svda124^'
    import string
    for s in string.punctuation: # 所有的特殊字符串
    if s in str:
    str = str.replace(s, '*')
    lis = str.split('*')
    print(lis)
    res = [] # 存的是符合条件的字符串,也就是包含字母和数字
    len_lis = [] # 存的是符合条件的字符串长度
    for l in lis:
    l = l.strip()
    if not l.isdigit() and not l.isalpha() and len(l) > 0:
    res.append(l)
    len_lis.append(len(l))
    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' % (res[len], max_len))
    else:
    index = len_lis.index(max_len) # 再找到这个长度下标
    st = res[index] # 最长的字符串
    print('最长的字符串是%s,他的长度是%s' % (st, max_len))
  • 相关阅读:
    一次性能测试的面试问题
    一次APP测试的感悟
    《程序员跳槽全攻略》读书笔记
    如果有人让你推荐编程技术书,请叫他看这个列表
    上班的一天
    马士兵Java视频教程 —— 学习顺序
    月薪3万的技术网站资源收集
    给32岁的自己一些答案
    《Vuser虚拟用户开发》读书笔记
    shell脚本异常:/bin/sh^M:bad interpreter: No such file or directory
  • 原文地址:https://www.cnblogs.com/niuniu2018/p/7737764.html
Copyright © 2020-2023  润新知