基于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" 注意: ...
随机推荐
- oracle实例侦听
在oracle服务器端命令行中执行 C:\>lsnrctl进入到 LISNRCTL>界面 键入help字符会回显相关的帮助命令
- 【python】 time模块和datetime模块详解 【转】
一.time模块 time模块中时间表现的格式主要有三种: a.timestamp时间戳,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 b.struct_time时间元组,共 ...
- query简洁弹出层代码
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- JSP的动态导入
<body> <!-- 动态引入 他们引入的相互独立的代码段 所以可以运行 代码段之间存在重复的变量 --> this is a test dy include 01 < ...
- SIEBEL GET最新时提示表异常
无法GET最新,则将此表GET一次,CHECK OUT下来,再UNDO CHECK IN即可
- sql批量插入添加自动编号
使用: ROW_NUMBER() over(order by ID desc) insert into dbo.Aa(Name,Nums) select top 10 NickName,ROW_NUM ...
- ThinkCMF框架使用 - 如何创建应用 -1
.应用就是application目录下的一个模块,它是独立于其它模块存在的,有自己独立的运行空间: .应用采用MVC的结构: .拿Blog应用举例: Blog Controller 控制器目录(必备) ...
- python 开发简单的聊天工具-乾颐堂
python 太强大了,以至于它什么都可以做,哈哈,开个玩笑.但是今天要讲的真的是一个非常神奇的应用. 使用python写一个聊天工具 其实大家平时用的QQ类似的聊天工具,也是使用socket进行聊天 ...
- HBase 系列(二)安装部署
HBase 系列(二)安装部署 本节以 Hadoop-2.7.6,HBase-1.4.5 为例安装 HBase 环境.HBase 也有三种模式:本地模式.伪分布模式.分布模式. 一.环境准备 (1) ...
- Java NIO API详解(转)
原文连接: http://www.blogjava.net/19851985lili/articles/93524.html 感谢原作者 NIO API 主要集中在 java.nio 和它的 subp ...