Python查找最长不包含重复字符的子字符串算法示例


Posted in Python onFebruary 13, 2019

本文实例讲述了Python查找最长不包含重复字符的子字符串算法。分享给大家供大家参考,具体如下:

题目描述

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。例如在“arabcacfr”中,最长的不包含重复字符的子字符串是“acfr”,长度为4

采用字典的方法,最后输出所有最长字符的列表

算法示例:

# -*- coding:utf-8 -*-
#! python3
class Solution:
  def __init__(self):
    self.maxString = []
  def longestSubString(self, inputString):
    if inputString == '':
      return ''
    dic = {}
    dic = dic.fromkeys(inputString, 0)
    self.maxString.append(inputString[0])
    for i in range(len(inputString)):
      for j in range(i, len(inputString)):
        if dic[inputString[j]] != 0:
          dic = dic.fromkeys(inputString, 0)
          break
        else:
          if j - i + 1 > len(self.maxString[0]):
            self.maxString = []
            self.maxString.append(inputString[i:j+1])
          elif j - i + 1 == len(self.maxString[0]):
            self.maxString.append(inputString[i:j+1])
          dic[inputString[j]] += 1
inputString = 'arabcacfr'
sol = Solution()
sol.longestSubString(inputString)
print(sol.maxString)
#输出:['rabc', 'acfr']

运行结果:

Python查找最长不包含重复字符的子字符串算法示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
对python 调用类属性的方法详解
Jul 02 Python
python实现批量nii文件转换为png图像
Jul 18 Python
Python爬虫使用代理IP的实现
Oct 27 Python
Python程序慢的重要原因
Sep 04 Python
基于python爬取梨视频实现过程解析
Nov 09 Python
python time.strptime格式化实例详解
Feb 03 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 #Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 #Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 #Python
Python实现Event回调机制的方法
Feb 13 #Python
Python socket实现多对多全双工通信的方法
Feb 13 #Python
对python文件读写的缓冲行为详解
Feb 13 #Python
python单线程文件传输的实例(C/S)
Feb 13 #Python
You might like
PHP4之真OO
2006/10/09 PHP
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
php生成无限栏目树
2017/03/16 PHP
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
基于django channel实现websocket的聊天室的方法示例
2019/04/11 Python
Python猴子补丁知识点总结
2020/01/05 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
Python里面如何实现tuple和list的转换
2012/06/13 面试题
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
四川成都导游欢迎词
2014/01/18 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
2014年母亲节寄语
2014/05/07 职场文书
应届毕业生自荐书
2014/06/18 职场文书
大学计划书范文800字
2014/08/14 职场文书
建筑节能汇报材料
2014/08/22 职场文书
民主评议党员个人总结
2015/02/13 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技