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实现面向对像的ASP程序实例
Nov 10 Python
centos 下面安装python2.7 +pip +mysqld
Nov 18 Python
Python 内置函数complex详解
Oct 23 Python
Python实现选择排序
Jun 04 Python
python TKinter获取文本框内容的方法
Oct 11 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
python的一些加密方法及python 加密模块
Jul 11 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
python中pop()函数的语法与实例
Dec 01 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 Python
Django框架模板用法详解
Jun 10 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中显示格式化的用户输入
2006/10/09 PHP
mysq GBKl乱码
2006/11/28 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
python基础教程之字典操作详解
2014/03/25 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python常见工厂函数用法示例
2018/03/21 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
python创建子类的方法分析
2019/11/28 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
钳工实习自我鉴定
2013/09/19 职场文书
大学运动会入场词
2014/02/22 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
起诉状范本
2015/05/20 职场文书
学生会干部任命书
2015/09/21 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python