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的collections模块中的deque双端队列结构
Jul 07 Python
利用Python获取操作系统信息实例
Sep 02 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
python3文件复制、延迟文件复制任务的实现方法
Sep 02 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
学Python 3的理由和必要性
Nov 19 Python
pandas-resample按时间聚合实例
Dec 27 Python
在pycharm中实现删除bookmark
Feb 14 Python
没编程基础可以学python吗
Jun 17 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
python实现视频压缩功能
Dec 18 Python
Django+Django-Celery+Celery的整合实战
Jan 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通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
JS类的封装及实现代码
2009/12/02 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
Python中处理时间的几种方法小结
2015/04/09 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
JavaScript中的模拟事件和自定义事件实例分析
2018/07/27 Python
基于python监控程序是否关闭
2020/01/14 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
python中np是做什么的
2020/07/21 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
大学生专科毕业生自我评价
2013/11/17 职场文书
大学生英语演讲稿
2014/04/24 职场文书
仓库规划计划书
2014/04/28 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
长城英文导游词
2015/01/30 职场文书
教师工作态度自我评价
2015/03/05 职场文书
论文评审意见
2015/06/05 职场文书
送给客户微信问候语!
2019/07/04 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书