基于python 3.5 所做的找出来一个字符串中最长不重复子串算法
功能:找出来一个字符串中最长不重复子串
def find_longest_no_repeat_substr(one_str):
#定义一个列表用于存储非重复字符子串
res_list=[]
#获得字符串长度
length=len(one_str)
for i in range(length):
tmp=one_str[i]
for j in range(i+1, length):
#用取到的字符与tmp中的字符相匹配,匹配不成功tmp字符继续增加,匹配成功直接跳出循环加入到res_list列表中
if one_str[j] not in tmp:
tmp+=one_str[j]
else:
#break只能跳出一层循环,并对if-else判断语句无效果,只对循环起作用
break
res_list.append(tmp)
#拿到列表总长度
n = len(res_list)
# 外层循环确定比较的轮数,x是下标
for x in range(n - 1):
# 内层循环开始比较,y是下标
for y in range(x + 1, n):
if len(res_list[x]) > len(res_list[y]):
# 让res_list[x]和res_list[y]列表中每一个元素比较,进行字符长度从小到大排序
res_list[x], res_list[y] = res_list[y], res_list[x]
return res_list[-1] if __name__ == '__main__':
one_str_list=['','abdfkjkgdok','']
for one_str in one_str_list:
res=find_longest_no_repeat_substr(one_str)
print('{0}最长非重复子串为:{1}'.format(one_str, res))
这里用到了排序算法
#拿到列表总长度
n = len(res_list)
# 外层循环确定比较的轮数,x是下标
for x in range(n - 1):
# 内层循环开始比较,y是下标
for y in range(x + 1, n):
if len(res_list[x]) > len(res_list[y]):
# 让res_list[x]和res_list[y]列表中每一个元素比较,进行字符长度从小到大排序
res_list[x], res_list[y] = res_list[y], res_list[x]
最后是输出值
# 120135435最长非重复子串为:201354
# abdfkjkgdok最长非重复子串为:abdfkj
# 123456780423349最长非重复子串为:123456780
基于python 3.5 所做的找出来一个字符串中最长不重复子串算法的更多相关文章
- Python判断一个字符串中是否存在多个子串中的一个
在使用python的开发过程中,常常需要判断,字符串中是否存在子串的问题, 但判断一个字符串中是否存在多个字串中的一个时,如if (a or b) in c或者if x contains a|b|c| ...
- python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串
1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件, 第一个字母和最后一个字符是第一次重复 这个子字符串的中间字母没有重复 这个 ...
- LeetCode练习3 找出一个字符串中最大不重复子字符串的长度
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- Python习题-输出一个字符串中最长的子字符串及其长度
描述:有个字符串$sd1#111$svda123!!!221&eSSDSDG,包含特殊字符.数字和字母,输出最长的子字符串和他的长度#例如上面的字符串包含数字字母的字符串是svda123,长度 ...
- 找出字符串中第一个不重复的字符(JavaScript实现)
如题~ 此算法仅供参考,小菜基本不懂高深的算法,只能用最朴实的思想去表达. //找出字符串中第一个不重复的字符 // firstUniqueChar("vdctdvc"); --& ...
- 笔试题&面试题:找出一个数组中第m小的值并输出
题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...
- [PY3]——找出一个序列中出现次数最多的元素/collections.Counter 类的用法
问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案 c ...
- 给定一个英文字符串,请编写一个PHP函数找出这个字符串中首先出现三次的那个英文字符(需要区分大小写),并返回
给定一个英文字符串,请编写一个PHP函数找出这个字符串中首先出现三次的那个英文字符(需要区分大小写),并返回 //统计字符串中出现的字符的出现次数 public function strNum(){ ...
- python经典算法题:求字符串中最长的回文子串
题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: ...
随机推荐
- pyCharm最新2018激活码(转)
原文地址:https://blog.csdn.net/u014044812/article/details/78727496 社区版和专业版区别: 因公司的需求,需要做一个爬取最近上映的电影.列车号. ...
- win10 svn commit无响应
只是发现其中的一个原因,发现.cs代码文件图标变红了,默认是用Code Writer打开,和SVN可能是冲突了,解决方式是用Code Writer打开一下.cs文件就可以了,原因可能是不打开一次Cod ...
- PHP-fpm启动时 出现 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'fileinfo.so' in Unknown on line 0
出现该问题的原因之一是: 在编译PHP时启用了fileinfo扩展(内置),但同时在php.ini文件中添加了: extension=fileinfo.so 去掉或注释之后,重启php-fpm,警告消 ...
- cmd变量,参数,for循环,
@echo offrem *****************************************************rem Create By Q_rui CopryRight@_ ...
- VsCode中vim插件剪切板等问题
剪切板共享 这个挺重要的,否则每次右键菜单复制粘贴会奔溃的. 在用户设置中添加: "vim.useSystemClipboard": true, 光标的变化 我觉得这个也重要,毕竟 ...
- selenium webdriver——JS滚动到最底部
JS控制滚动条的位置: window.scrollTo(x,y); 竖向滚动条置顶 window.scrollTo(0,0); 竖向滚动条置底 window.scrollTo(0,document.b ...
- Python运维开发基础05-语法基础
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Mr.chen import os,time Tag = ...
- Linux运维基础入门(四):Linux中的网络知识04
一,虚拟机的安装 略 二,Linux系统下的网络配置(Linux虚拟机的网络设定为桥接模式) 桥接模式:虚拟机同主机一样,在网络中相当于一个真实存在的装有Linux系统的电脑.(我们先用这个模式) N ...
- python实现测试报告的bug统计
背景:组内要针对每个项目生成测试报告,要对当前项目的一些bug进行统计.考虑到人工统计比较繁琐,而且是个长期的工作,所以写个脚本对bug进行自动统计.(我们用的bug平台是bugfree,直接可以导出 ...
- Volley的简单封装
算了一下,好像有很久没有写博客了.其实,关于写博客这件事,我从来没有把他当成我的一种任务,而是在学习过程中的一种总结和自我发现,同样也是为了练一练文笔,说不定有一天,我也能出一本书像<第一行代码 ...