Python查找字符串中最长不重复子串的简单实现

山间有风
山间有风
发布时间:2026-10-13 | 1人浏览过
原创

本文介绍了一种使用Python查找字符串中最长不重复子串的方法。通过遍历字符串并记录无重复字符的子串,最终筛选出长度最长的结果。文中提供了完整的Python代码示例及运行结果,适用于解决相关编程笔试题目或字符串处理需求。

本文分享一个使用Python查找字符串中最长不重复子串的具体实现方案,供读者参考学习。

这是近期一道笔试题的解答,题目难度适中,以下直接展示核心实现代码。

#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:找出来一个字符串中最长不重复子串
'''
def find_longest_no_repeat_substr(one_str):
  '''''
  找出来一个字符串中最长不重复子串
  '''
  res_list=[]
  length=len(one_str)
  for i in range(length):
    tmp=one_str[i]
    for j in range(i+1, length):
      if one_str[j] not in tmp:
        tmp+=one_str[j]
      else:
        break
    res_list.append(tmp)
  res_list.sort(lambda x,y:cmp(len(x),len(y)))
  return res_list[-1]
if __name__ == '__main__':
  one_str_list=['120135435','abdfkjkgdok','123456780423349']
  for one_str in one_str_list:
    res=find_longest_no_repeat_substr(one_str)
    print '{0}最长非重复子串为:{1}'.format(one_str, res)

程序运行输出结果如下所示。

输入'120135435'时,最长非重复子串为:201354 输入'abdfkjkgdok'时,最长非重复子串为:abdfkj 输入'123456780423349'时,最长非重复子串为:123456780

如需了解更多Python知识,可参考本站相关专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》以及《Python文件与目录操作技巧汇总》。

希望上述内容能对各位的Python编程实践有所帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表