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中使用pngquant压缩png图片的教程
Apr 09 Python
Python字典操作简明总结
Apr 13 Python
九步学会Python装饰器
May 09 Python
整理Python中的赋值运算符
May 13 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
python进行TCP端口扫描的实现
Dec 21 Python
python中metaclass原理与用法详解
Jun 25 Python
Django时区详解
Jul 24 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
使用Pycharm分段执行代码
Apr 15 Python
基于python爬取梨视频实现过程解析
Nov 09 Python
opencv实现图像几何变换
Mar 24 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 cookie 登录验证示例代码
2009/03/16 PHP
php旋转图片90度的方法
2013/11/07 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
vuex的使用步骤
2021/01/06 Vue.js
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
使用python 3实现发送邮件功能
2018/06/15 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
美国美妆网站:B-Glowing
2016/10/12 全球购物
竞争性谈判邀请书
2014/02/06 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
新年团拜会主持词
2014/04/02 职场文书
辅导员评语
2014/05/04 职场文书
个人授权委托书范文
2014/09/21 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
工作自我推荐信范文
2015/03/25 职场文书
初中团委工作总结
2015/08/13 职场文书