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 相关文章推荐
pygame加载中文名mp3文件出现error
Mar 31 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Python中单、双下划线的区别总结
Dec 01 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
python list删除元素时要注意的坑点分享
Apr 18 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
python简单验证码识别的实现方法
May 10 Python
python地震数据可视化详解
Jun 18 Python
如何使用python把ppt转换成pdf
Jun 29 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
python实例化对象的具体方法
Jun 17 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实现简单文件下载的方法
2015/01/30 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
JS中的forEach、$.each、map方法推荐
2016/04/05 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
express异步函数异常捕获示例详解
2020/11/30 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python正则表达式指南 推荐
2018/10/09 Python
python实现文本界面网络聊天室
2018/12/12 Python
Python交互式图形编程的实现
2019/07/25 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
python中time tzset()函数实例用法
2021/02/18 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
实习单位接收函
2014/01/11 职场文书
给幼儿园老师的表扬信
2014/01/19 职场文书
学校施工安全责任书
2015/01/29 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js