zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    查看java代码,命令,ctrl+r
    JVM调优
    springboot线程池
    jpa
    复制java对象,jpa,save
    springboot添加切面
    gunicorn 实现 gevent 多线程
    经典算法
    python-生僻字转拼音
    HTML介绍
  • 原文地址:https://www.cnblogs.com/niuniu2018/p/7737764.html
Copyright © 2011-2022 走看看