Python查找最长不包含重复字符的子字符串算法示例

 更新时间:2019年02月13日 11:32:23   作者:hustfc  
这篇文章主要介绍了Python查找最长不包含重复字符的子字符串算法,涉及Python字符串遍历、统计相关操作技巧,需要的朋友可以参考下

本文实例讲述了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列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • python 发送和接收ActiveMQ消息的实例

    python 发送和接收ActiveMQ消息的实例

    今天小编就为大家分享一篇python 发送和接收ActiveMQ消息的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 基于Python实现一键批量查询邮编

    基于Python实现一键批量查询邮编

    这篇文章主要为大家详细介绍了如何利用Python快速实现查询excel表格里所有邮编对应的地址信息,将输出的省市县信息分开放在不同的单元格中,感兴趣的可以了解下
    2023-08-08
  • Django vue前后端分离整合过程解析

    Django vue前后端分离整合过程解析

    这篇文章主要介绍了Django vue前后端分离整合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • pandas实现一行拆分成多行

    pandas实现一行拆分成多行

    这篇文章主要介绍了pandas实现一行拆分成多行方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解

    基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解

    这篇文章主要介绍了基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 使用Python和Plotly绘制各种类型3D图形的方法

    使用Python和Plotly绘制各种类型3D图形的方法

    Python语言拥有丰富的数据可视化库,其中Plotly是一款流行的工具,提供了绘制高质量三维图形的功能,本文将介绍如何使用Python和Plotly来绘制各种类型的3D图形,并给出代码实例,需要的朋友可以参考下
    2024-05-05
  • 在Python中执行异常处理的基本步骤

    在Python中执行异常处理的基本步骤

    异常处理是编写健壮、可靠和易于调试的Python代码中不可或缺的一部分,下面这篇文章主要给大家介绍了关于在Python中执行异常处理的基本步骤,需要的朋友可以参考下
    2024-08-08
  • python实现防截图的6种方法详解

    python实现防截图的6种方法详解

    防截图是指一组技术或方法,用于防止他人在未经允许的情况下在屏幕上截取或记录图像,这是一个重要的安全措施,它可以防止窃取敏感信息或监视个人信息,本文为大家整理了6种python可以防截图的方法,需要的可以参考下
    2023-10-10
  • python pygame实现滚动横版射击游戏城市之战

    python pygame实现滚动横版射击游戏城市之战

    这篇文章主要为大家详细介绍了python pygame实现滚动横版射击游戏城市之战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Python数据序列化之pickle模块

    Python数据序列化之pickle模块

    这篇文章主要介绍了Python数据序列化之pickle模块,pickle的本质是将Python数据还原为内存中的二进制数据,供用户转移、储存,更多详细内容,需要的小伙伴可以下面文章内容
    2022-03-03

最新评论