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实现文件分组复制到不同目录的例子
Jun 04 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
Python列表与元组的异同详解
Jul 02 Python
在python中用url_for构造URL的方法
Jul 25 Python
基于Python实现扑克牌面试题
Dec 11 Python
python保留小数位的三种实现方法
Jan 07 Python
基于Django signals 信号作用及用法详解
Mar 28 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
Python全局变量与global关键字常见错误解决方案
Oct 05 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 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 max_execution_time执行时间问题
2011/07/17 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
php发送邮件的问题详解
2015/06/22 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
JavaScript的Function详细
2006/11/14 Javascript
javascript之ESC(第二类混淆)
2007/05/06 Javascript
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
简述Jquery与DOM对象
2015/07/10 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
Python实现图片转字符画的示例
2017/08/22 Python
Python命令行解析模块详解
2018/02/01 Python
Python3进制之间的转换代码实例
2019/08/24 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
计算机学生的自我评价分享
2014/02/18 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
律师催款函范文
2015/06/24 职场文书
自书遗嘱范文
2015/08/07 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技