寻找一个字符串的重复子串 后缀数组
什么是后缀数组
令字符串 S=S[1]S[2]...S[n]S=S[1]S[2]...S[n]{\displaystyle S=S[1]S[2]...S[n]} , S[i,j]S[i,j]{\displaystyle S[i,j]} 表示SS {\displaystyle S} 的子字符串,下标从ii {\displaystyle i} 到 jj{\displaystyle j} 。
SS{\displaystyle S} 的后缀数组AA {\displaystyle A} 被定义为一个数组,内容是 SS{\displaystyle S} 的所有后缀经过字典排序后的起始下标。
对于所有的有:1<i≤n:S[A[i−1],n]<S[A[i],n]1<i≤n:S[A[i−1],n]<S[A[i],n] {\displaystyle 1。
求一个字符串的重复字串
# -*- coding: utf-8 -*-# !/usr/bin/env python# Time: 2018/6/21 20:51# Author: sty# File: 4.pyimport sysdef get_common_len(str1, str2):len1 = len(str1)len2 = len(str2)min_len = min(len1, len2)res_i = 0for i in range(min_len):res_i = iif str1[i] != str2[i]:breakreturn res_i + 1if __name__ == "__main__":str = sys.stdin.readline().strip()strs = []for i in range(len(str)):strs.append(str[i:])strs.sort()max_len = 0for i in range(len(strs) - 1):len_temp = get_common_len(strs[i], strs[i + 1])max_len = max(max_len, len_temp)print(max_len)
参考链接
算法设计 - 寻找一个字符串的重复子串LRS
给定一个字符串,求出其最长的重复子串的长度
WIKI
https://blog.csdn.net/xwchao2014/article/details/47754613
寻找一个字符串的重复子串 后缀数组相关推荐
- 算法设计 - 寻找一个字符串的重复子串LRS
虽是读书笔记,但是如转载请注明出处 http://segmentfault.com/blog/exploring/ .. 拒绝伸手复制党 问题描述: 首先这是一个单字符串问题.子字符串 R 在字符串 ...
- 【字符串问题】求一个字符串中重复出现的最长的子串
2013-09-14 15:34:16 用后缀数组求一个字符串中重复出现的最长的子串. 用C++中的string类可以很方便地进行操作,需将后缀数组保存在vector<string>,如下 ...
- 面试题:寻找一个字符串中出现次数最多的字符以及出现的次数
要求编写代码实现:寻找一个字符串中出现次数最多的字符以及出现的次数. 解法一:用删除法实现 (挺巧妙的一种) public class FindTheMostAppearChar {public st ...
- 最长不重复子串python_寻找最长不重复子串
寻找最长不重复子串 Longest Substring Without Repeating Characters Given a string, find the length of the long ...
- Python获取一个字符串所有连续子串
获取一个字符串所有连续子串组成集合(set)的长度,居然是Facebook的interview题目,我也做出来了,哈哈: def get_all_substrings(string):length = ...
- python字符串是否包含某元素_Python实现判断一个字符串是否包含子串的方法总结...
本文实例总结了Python实现判断一个字符串是否包含子串的方法.分享给大家供大家参考,具体如下: 1.使用成员操作符 in >>> s='nihao,shijie' >> ...
- 46. 全排列:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
题目描述 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[ ...
- 寻找一个字符串中的最长不重复子串的长度
2019独角兽企业重金招聘Python工程师标准>>> 算法使用两个下标来分别代表不重复子串的第一个字符的前一个字符和最后一个字符,记为i和j flag为长度,n为比较的参数 < ...
- c与指针 从一个字符串中提取子串_python实现找出来一个字符串中最长不重复子串...
刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:找出来一个字符串中最长不重复 ...
最新文章
- Codeforces681D Gifts by the List
- Linux并发与同步专题 (1)原子操作和内存屏障
- 将文件转为stream流_NIO之文件IO
- mybatis 3.2.2_环境搭建
- 字符串匹配算法(BM)
- flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)
- 问题解决 xenapp6/6.5发布资源管理器explorer应用不能打开 一闪而过
- CentOS 7 设置IP地址无效
- 学习Google Chrome源码
- php购物网站毕业论文,基于PHP的购物网站的设计与开发
- 维宏控制卡win7 驱动_雕刻机专用维宏5.55运动驱动控制卡
- DDR4时序标准规范(一)
- 【NOI2015】【BZOJ4199】品酒大会
- 计算机中二进制的加法
- IOS开发协议使用之──非正式协议和正式协议
- python音乐可视化效果_Python 一个漂亮的音乐节奏可视化方案!我觉得可行
- 如何提高自己的专注度
- 面试时你暴露出这几个点,肯定没希望了!
- 求一个手机淘宝直播中抢购的脚本,急
- 基于单片机的功放protues_基于Proteus的音频放大器电路设计与仿真详解.doc