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设置检查点简单实现代码
Jul 01 Python
Python对象的深拷贝和浅拷贝详解
Aug 25 Python
Python命令启动Web服务器实例详解
Feb 23 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
python命令行参数用法实例分析
Jun 25 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
Python如何访问字符串中的值
Feb 09 Python
使用Python发现隐藏的wifi
Mar 04 Python
Python threading.local代码实例及原理解析
Mar 16 Python
Python3 中sorted() 函数的用法
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最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
js jquery分别实现动态的文件上传操作按钮的添加和删除
2014/01/13 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
python同步windows和linux文件
2019/08/29 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
酒店仓管员岗位职责
2014/04/28 职场文书
党的生日活动方案
2014/08/15 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL