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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
Python单例模式的两种实现方法
Aug 14 Python
对Python中内置异常层次结构详解
Oct 18 Python
Python中最大递归深度值的探讨
Mar 05 Python
Python一行代码实现快速排序的方法
Apr 30 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
django-初始配置(纯手写)详解
Jul 30 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
Python新手学习标准库模块命名
May 29 Python
python字典key不能是可以是啥类型
Aug 04 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连接MySQL代码的参数说明
2008/06/07 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
phpwind放自动注册方法
2006/12/02 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
js中new一个对象的过程
2017/02/20 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
微信小程序单选框自定义赋值
2020/05/26 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
python实现用户登录系统
2016/05/21 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
浅谈Python中的私有变量
2018/02/28 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
和谐社区口号
2014/06/19 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
个人查摆剖析材料
2014/10/04 职场文书
房屋授权委托书范本
2014/10/07 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
介绍信格式
2015/01/30 职场文书
学生通报表扬范文
2015/05/04 职场文书
小学教育见习总结
2015/06/23 职场文书
2016保送生自荐信范文
2016/01/29 职场文书
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技