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

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

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

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

python字符串重复

参考链接: Python字符串 python字符串重复 先将第一个字符串加入另一个空字符串“temp”;然后从第二个字符串开始与temp中已经加入的字符串对比,若已经存在则不加入temp字符串,若无加入字符串...使用python实现  #只去除字符串两个字符组成的重复字符串 #测试样例:派克盖伦诺手盖伦派克盖伦盖伦 #样例输出:派克盖伦诺手 str2="派克盖伦诺手盖伦派克盖伦盖伦" def Remove_Same...=str1[2*i:2*i+2] :                  flag=1#若之前有元素想同则标记1                 break         if flag==0 :#无重复元素则加入...              temp=temp+str1[2*i:2*i+2]          else :#重复元素,flag置0进入下一个循环              flag=0     return

2K20

Rocketmq消费消息时丢失不重复

消息消费丢失手动ACK在消费者端,需要确保在消息拉取并消费成功之后再给Broker返回ACK,就可以保证消息丢失了,如果这个过程中Broker一直没收到ACK,那么就可以重试。...一个死信队列包含了这个ConsumeGroup里的所有死信消息,而区分该消息属于哪个Topic。死信队列中的消息不会再被消费者正常消费。死信队列的有效期跟正常消息相同。...RocketMQ 消息重复的场景发送时消息重复当一条消息已被成功发送到服务端并完成持久化,此时出现了网络闪断或者客户端宕机,导致服务端对客户端应答失败。...投递时消息重复消息消息已投递到消费者并完成业务处理,当客户端给服务端反馈应答的时候网络闪断。...负载均衡时消息重复包括但不限于网络抖动、Broker 重启以及订阅方应用重启,当消息队列 RocketMQ 的 Broker 或客户端重启、扩容或缩容时,会触发 Rebalance,此时消费者可能会收到重复消息

44721

【LeetCode】无重复字符串最长子串

题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。...示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。...题目解析 这道题的目标是找出最长子串,并且该子串必须包含重复字符,而且这个子串必须是原字符串中连续的一部分(见示例3中的解释说明)。...这里,我们找到了一个重复的s,序号为7,此时的子串为frankis,将此时的子串长度与最大子串长度相比较(目前为0),如果比最大子串长度大,则将最大子串长度设置为当前子串长度7。 ?

98810

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),也还行...word] += 1;//累加出现次数 } else{ word_map[word] = 1; } } //for循环结束后,已遍历完字符串

67210

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,长度为...li: lastIndex的缩写 ,表示:比如abcabcaa 现在到第4个位置也就是a ,li表示上次a出现的位置 li = 1 si: startindex的缩写,表示以i-1位置字符结尾的最长不重复字符串的开始索引

83400

算法练习之寻找不重复最长字符串

不忘初心,砥砺前行 作者 | 陌无崖 转载请联系授权 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。...一问一答 遍历字符串找不同可以先排序吗 不可以,在题目的要求下,无重复的最长子串必须是连续的在原来的字符串顺序保持不变的情况下 如何判断字符串中不重复 利用Golang中strings包的Contain...函数判断,原序列是否包含子序列 假设 假设字符串长度为0 返回值应该为0 假设字符串长度为1 返回值为1 假设字符串长度为2 需要将第2个字符和第一个字符作比较,是否重复,如果重复,最长的长度为1不变,...5、判断该result的最后一个字符,是否与前面的字符串重复, 6、如果不重复,判断max是否小于当前的result,如果小于,进行重新赋值max长度为len(result) 7、如果重复,指针指向下一个字符...,result等于该字符,进行重新寻找连续的不重复字符串 代码实现 package main import ( "fmt" "strings" ) func Same(s string

1.6K30
领券