首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

字符串包含重复字符最长子串

今天我遇到一个问题,题目描述如下:         一个字符串,求这个字符串包含重复字符最长子串长度,如abba返回2,aaaaabc返回3,bbbbbbb返回1,等等上面是测试用例。...那么我解决这个问题思路有两种: 第一种是,设一个头指针和一个尾指针,头指针指向,包含重复字符子串第一个字符,尾指针指向包含重复子串最后一个字符,用一个hashset保存已经出现过字符,例如abba...,如果尾指针指向字符,在集合中没有出现,那么将这个字符放入结合,然后尾指针向后移动,这是尾指针会移动到第二个b位置,如果集合中已经包含了这个字符,那么用尾指针索引减去头指针索引,会求出一个子串长度...,如果该长度大于当前最大长度,那么就令当前最大长度等于目前长度,然后清空集合,头指针向后移动一个字符,尾指针再指向头指针,然后重复上面的过程,这样既可求出最大长度。...hashmap作为辅助,mapkey存储是字符,value存储是该字符当前位置,首先设置一个头指针,指向字符串开头,那么从开始遍历字符串,如果map当中包含这个字符,那么用这个字符当前所在位置减去头指针位置

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

重复字符串

题目描述 给定一个非空字符串,判断它是否可以由它一个子串重复多次构成。给定字符串只含有小写英文字母,并且长度超过10000。...很明显这里所说子串不包括自身 普通解法 以 s 表示给出非空字符串,若 s 可由自身字符串重复构成,则子字符串长度最少为 1,最长为 len(s)//2 class Solution:...= -1 初次看到这种写法,觉得真是太简洁以至于有点莫名其妙,想了一下才觉得提交人真的很聪明 以 s 表示给出非空字符串,以 n 表示其子字符串,如果 n 存在,则 n 长度最小为 1,重复次数最小为...不妨以 len(n) 表示取字符串 n 长度,num(s,n) 表示 s 中 n 重复次数。 证明若 n 存在,则 (s+s)[1:-1].find(s) !...==[-x:],即 s 重复字符串为 n:s[:x],即 n 存在; 若 len(s)%x!

1.1K20

有趣Shell脚本之随机字符串

前言 生活中、工作中,有时候总需要随机生成一些字符串,如果只是一两条还好,多了就不容易搞…… 对于开发人员可能没什么问题,但对于不是程序员我们应该怎么做呢?...答案很简单,一个Shell脚本就能实现 ---- 明确需求 随机生成字符串(有数字、字母) 字符串条数可控 字符串长度可控 按需 进行大小写转换 ---- 脚本实现 随机字符串:sha512sum 条数...、长度、大小写转换:接收用户输入参数,如果没有按默认输出 read 命令 sha512sum 默认输出是小写,用 tr 命令进行转换大写 ---- 环境 一台 Linux 服务器或电脑 如果没有Linux.../bin/bash # 交互信息 read -p "字符串条数:" n read -p "字符串长度:" l read -p "小写转大写:" t clear echo "正在生成字符串信息,请稍后....." echo # 变量 n l t 默认值设定 if [ -z "$n" ];then n=10 fi if [ -z "$l" ];then l=32 fi # 随机字符串生成 function

45020

Golang 生成随机字符串高级玩法!

Golang 生成随机字符串高级玩法! 如题:用 Golang 生成随机字符串(大小写字母组成),最快、最简单实现方式是怎样?...[1] 随机字符串嘛,rand就行了哦,这还不是信手拈来?...总有那么一波人要搞个大新闻,他们玩就是人群中不一样!于是乎,就有了下面这位老哥高赞回答。 I. Improvements 如果仅仅是生成随机字符串,最快方案也可能不是首选。...话说,每次生成随机数大于等于 len(letterBytes)概率一般是小于0.5(平均为0.25);在重复n次后,还没有找到合适数字概率会比 power(0.5,n)(这里只是一个上限)小很多。...但是,子曰:只要思想滑坡,办法总比困难多。于是乎,我们换个方向,把目标转向了随机数生成部分。 crypto/rand包也能生成随机数,但是它更慢。回过头来,还是得搞一搞 math/rand包了。

2.9K40

如何生成不重复随机

标签:Excel公式 有时候,我们想生成一系列随机数,但又不希望这些数字中有重复数。 如果使用RANDBWEEN函数,如下图1所示,很可能会出现重复数。...图1 要想获取不重复随机数,我们需要一点小技巧。例如,想要获取21个不重复随机数,可以先将21个数字按顺序排序,然后再从中选择所需数字,这样可以避免出现任何重复数。...步骤1:选择一列中包含21个单元格区域。 步骤2:输入公式:=RAND(),然后按Ctrl+回车键,在所有选择单元格中输入这个公式,如下图2所示。...找到最大值后,使用MATCH在列表中查找该值,其位置即为返回重复值。...图3 生成了21个不重复随机数。 你还有其他获取不重复随机公式吗?

31530

Day12-字符串-重复DNA序列

一 唠唠嗑 最近需求又追紧了,盒饭可能篇幅短一些了,但干货绝对少不了 保证把完整一道题目给出来,是必须 但是我真心发现,产品经理真是个神奇存在 ?...二 来吧上题吧 Q:将DNA序列看作是只包含【'A', 'C', 'G', 'T'】4个字符字符串。现有一个这样字符串,找到所有长度为10且出现次数超过1子串。...比如:对于字符串“AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT” 输出:["AAAAACCCCC", "CCCCCAAAAA"] 三 分析一波 应该还有更简洁算法,但今天时间着实是紧...我解法,这样处理逻辑: 建立一个哈希map: word_map 遍历字符串,取,从当前下标开始,长度为10子串,赋为临时变量word 若当前子串word出现在哈希...map中,则累加次数,若没出现过,将次数初始化为1 遍历完字符串后,再从word_map中取出单词,即key,添加进最后字符串数组中 即从头遍历一遍字符串,时间复杂度O(N),也还行

70010

LeetCode:最长不含重复字符字符串

解题思路思考:   以abcabcbb为例,找出以每个字符结束,包含重复字符最长子串。那么其中最长那个字符串即为答案。...对于示例一中字符串,我们列举出这些结果,其中括号中表示选中字符以及最长字符串: 以 [a]bcabcbb 结束最长字符串为[a]bcabcbb,长度为1 以 a[b]cabcbb 结束最长字符串为...[ab]cabcbb,长度为2 以 ab[c]abcbb 结束最长字符串为[abc]abcbb,长度为3 以 abc[a]bcbb 结束最长字符串为a[bca]bcbb,长度为3 以 abca[b]...cbb 结束最长字符串为ab[cab]cbb,长度为3 以 abcab[c]bb 结束最长字符串为abc[abc]bb,长度为3 以 abcabc[b]b 结束最长字符串为abcab[cb]b,长度为...,表示:比如abcabcaa 现在到第4个位置也就是a ,li表示上次a出现位置 li = 1 si: startindex缩写,表示以i-1位置字符结尾最长不重复字符串开始索引(最左索引)

84200

​LeetCode刷题实战459:重复字符串

今天和大家聊问题叫做 重复字符串,我们先来看题面: https://leetcode-cn.com/problems/repeated-substring-pattern/ Given a string...给定一个非空字符串,判断它是否可以由它一个子串重复多次构成。给定字符串只含有小写英文字母,并且长度超过10000。...(或者子字符串 "abcabc" 重复两次构成。)...解题 思路大致如下:如果一个非空字符串s可以由它一个子串重复多次构成,可以理解为s中存在m个子串,那么当两个字符串结合起来变成ss时,字符串s在新字符串ss第二次位置不等于s长度(相当于前一个字符串...s中有n个子串,在后一个字符串中有m-n个子串,所以此时位置不等于s长度);反之,一个非空字符串s不可以由它一个子串重复多次构成,那么当两个字符串结合起来变成ss时,字符串s在新字符串ss第二次位置就在后一个字符串首字符位置

36430

「JS小技巧」随机重复ID,模板标签替换,XML与字符串互转,快速取整

本篇文章主要包含以下内容: 产生随机重复ID 模板标签替换 字符串与xml互转 快速取整数 本篇文章阅读时间预计3分钟。...01 产生随机重复ID 有时候在没有第三方类库情况下,我们希望希望产生随机且不重复ID,这时我会使用「随机数」搭配「时间戳」方式,首先使用Math.random()产生0~1之间约16~17位数随机浮点数...,就能产生一个随机重复id 。...精彩推荐 css实用手册丨CSS 垂直居中七种方法,值得收藏 Web Animation API丨用原生JS制作一个图片随机移动动画 十款热门Vue.js工具和库 vue基础丨新手入门篇(一) 小技巧丨...css基础丨如何理解transformmatrix()用法 css基础丨如何理解Display属性:None,Block,Inline,Inline-Block ES6基础丨let和作用域 ES6基础丨

3.2K20
领券