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中使用logging模块代替print(logging简明指南)
Jul 09 Python
用Python编写分析Python程序性能的工具的教程
Apr 01 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
Python生成随机密码的方法
Jun 16 Python
python编程嵌套函数实例代码
Feb 11 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
python每天定时运行某程序代码
Aug 16 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
python字符串的index和find的区别详解
Jun 20 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使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
php处理静态页面:页面设置缓存时间实例
2017/06/22 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
七种PHP开发环境搭建工具
2020/06/28 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js同源策略详解
2015/05/21 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Python heapq使用详解及实例代码
2017/01/25 Python
python实现解数独程序代码
2017/04/12 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
python安装pil库方法及代码
2019/06/25 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
财务方面个人工作的自我评价
2013/12/28 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
销售顾问工作计划书
2014/08/15 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
Python类方法总结讲解
2021/07/26 Python
Java数据结构之堆(优先队列)
2022/05/20 Java/Android