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 thread 并发且顺序运行示例
Apr 09 Python
python写的一个squid访问日志分析的小程序
Sep 17 Python
Python lxml模块安装教程
Jun 02 Python
对于Python装饰器使用的一些建议
Jun 03 Python
python截取两个单词之间的内容方法
Dec 25 Python
Python进阶之@property动态属性的实现
Apr 01 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 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
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
使用jQuery jqPlot插件绘制柱状图
2014/12/18 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
JS中使用变量保存arguments对象的方法
2016/06/03 Javascript
Node.js实现文件上传
2016/07/05 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
python人人网登录应用实例
2014/09/26 Python
python中enumerate函数用法实例分析
2015/05/20 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python web框架中实现原生分页
2019/09/08 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
南京某公司笔试题
2013/01/27 面试题
表彰先进的通报
2014/01/31 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
结婚幸福感言
2015/08/01 职场文书
十大最强妖精系宝可梦,哲尔尼亚斯实力最强,第五被称为大力士
2022/03/18 日漫
服务器SVN搭建图文安装过程
2022/06/21 Servers
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS