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))
python-又来练习题--输出一个字符串中最长的子字符串及其长度的更多相关文章
- Python习题-输出一个字符串中最长的子字符串及其长度
描述:有个字符串$sd1#111$svda123!!!221&eSSDSDG,包含特殊字符.数字和字母,输出最长的子字符串和他的长度#例如上面的字符串包含数字字母的字符串是svda123,长度 ...
- hdu3068 求一个字符串中最长回文字符串的长度 Manacher算法
最长回文 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Java如何计数替换字符串中第一次出现的子字符串?
在Java编程中,如何拆分正则表达式和字符串? 以下示例演示如何使用Matcher类的replaceFirst()方法替换字符中指定的子字符串的首次出现. package com.yiibai; im ...
- 用C#通过正则表达式截取字符串中符合条件的子字符串
仅仅作为简单的记录,不多说直接上代码(仅测试使用): private void Test() { Regex ConnoteA = new Regex("^[a-zA-Z]\\d{8}$&q ...
- 字符串中连续出现最多的子串 & 字符串中最长反复子串
字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...
- 使用后缀数组寻找最长公共子字符串JavaScript版
后缀数组很久很久以前就出现了,具体的概念读者自行搜索,小菜仅略知一二,不便讨论. 本文通过寻找两个字符串的最长公共子字符串,演示了后缀数组的经典应用. 首先需要说明,小菜实现的这个后缀数组算法,并非标 ...
- 基于python 3.5 所做的找出来一个字符串中最长不重复子串算法
功能:找出来一个字符串中最长不重复子串 def find_longest_no_repeat_substr(one_str): #定义一个列表用于存储非重复字符子串 res_list=[] #获得字符 ...
- javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数
javascript 写一段代码,判断一个字符串中出现次数最多的字符串,并统计出现的次数 function test(){ var bt = document.getElementById(" ...
- 算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。
[题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左 ...
随机推荐
- kibana报[FORBIDDEN/12/index read-only / allow delete (api)]错误
一.错误描述 1.在kibana,dev中pose数据,报[FORBIDDEN/12/index read-only / allow delete (api)]错误. 尝试过网上的说的方法一:在kib ...
- 3、sql 表的连接
摘自: https://blog.csdn.net/holly2008/article/details/25704471 表连接分为:CROSS JOIN.INNERT JOIN.OUTER JOIN ...
- 牛客练习赛26 D xor序列 (线性基)
链接:https://ac.nowcoder.com/acm/contest/180/D 来源:牛客网 xor序列 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他 ...
- 格兰杰因果 Granger causality
格兰杰因果关系(Granger causality )是基于预测的因果关系统计概念.根据格兰杰因果关系,如果信号X1“格兰杰Causes”(或“G-Causes”)信号X2,则X1的过去值应该包含有助 ...
- yaourt
https://blog.csdn.net/relcodego/article/details/50531379 https://blog.csdn.net/lsvtogergo/article/de ...
- MyEclipse使用教程:使用主题自定义工作台外观
[MyEclipse CI 2019.4.0安装包下载] 您可以通过选择Window>Preferences>General>Appearance来使用主题自定义的工作台外观,可以从 ...
- .NET界面控件DevExpress全新发布v19.1.4|更改DCT解码器
DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...
- 从springmvc 过度到 springboot
1.web.xml 形式的MVC项目 web.xml ,web.xml的启动类在 web 容器里,即Tomcat中. Tomcat的main方法会加载 web.xml.为什么Tomcat会加载 web ...
- mongodb切片配置方法
---------------------------------切片架构图-------------------------------------------------------------- ...
- electron-vue打包引用的图标不显示问题
在electron-vue中使用了字体图标,但是打包成.exe文件后图标不显示,路劲问题 把字体图标放到static目录下就可以了,静态图片也一样 我原来放在其它地方不行 改到static目录就可以了