例子

"abmadsefadd"  最长长度为5

"avoaid"           最长长度为3

思路

空间换时间hashTable,起始位置设为beg。初始化全局最大值0。开辟字符数组,起初标为0。

访问数组时

  • 如果该字符在hashTable对应的哈希值为1,则计算当前位置到beg的距离,并且把beg赋值为beg+1。如果大于全局最大值,则替换全局最大值
  • 如果该字符在hashTable对应的哈希值为0,则置1

参考代码

#include <iostream>
using namespace std;int getMaxLen(const string &s)
{int beg = 0;int span = 0;int maxspan = 0;int hashTable[128];for (int i = 0; i < 128; ++i)hashTable[i] = 0;int lens = s.size();for(int i = 0; i < lens; ++i){int index = s[i];if (hashTable[index] == 1){span = i - beg;if (span > maxspan)maxspan = span;beg++;}else{hashTable[s[i]] = 1;}}return maxspan;
}int main()
{const string a = "abmadsefadd";const string a1 = "avoaid";cout << getMaxLen(a) << endl;cout << getMaxLen(a1) << endl;
}

结果

7
3

字符串中最长不重合子串长度相关推荐

  1. 字符串中连续出现最多的子串 amp; 字符串中最长反复子串

    字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...

  2. 面试宝典_Python.常规算法.0002.输出任意两个字符串中最长公共子串?

    面试题目: 1. 用PY实现求任意两个字符串最长的公共子串? 解题思路: 1. 先求出长度最小的字符串,然后遍历其索引,这样可以避免字符串索引溢出,然后判断对应索引的值是否相同,相同的话就加到目标字典 ...

  3. 获取字符串中最长单词的长度

    有一个字符串,里面包含空格和其他非空白字符,求不含空格的最大字串的长度. String s = " aa aa aaaabd 4545545454545454545 aaaddddfa a ...

  4. c语言统计最长单词长度,求3个字符串中最长单词的长度 求救 会一个的

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是我编的1个得 #include #include int main() {int alphabetic(char); int longest(char ...

  5. c语言string最大长度,求3个字符串中最长单词的长度 求救 会一个的

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是我编的1个得 #include #include int main() {int alphabetic(char); int longest(char ...

  6. 求字符串中最长无重复字符的子串

    题目:求一个字符串中最长的没有重复字符的子串. 思路:用hash表从i遍历查看包含i的最长 无重复子串. int max_unique_substring2(char * str) {int i,j; ...

  7. python字符串中最长的连续升序子串_Leetcode刷题练Python无重复字符的最长子串

    这是一道字符串处理算法的题目,在日常编程中,处理字符串是常见任务.该题目会涉及到一个概念"滑动窗口". 一.题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度 ...

  8. python求字符串中出现的第一个最长重复子串(如banana中最长重复子串为ana)

    #字符串中出现的第一个最长重复子串 class commonsubstring():def maxlen(self,s1,s2): #最长公共子串的长度for i in range(min(len(s ...

  9. 最长不重复字符串python_Python简单实现查找一个字符串中最长不重复子串的方法...

    本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法.,具体如下: 刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现: #!usr/bin/env python #encodi ...

最新文章

  1. 用Cordova打包Vue-vux项目
  2. Java 查看文件绝对路径,JAVA获取文件绝对路径的方法
  3. 12:MYSQL 使用函数创建自增序列管理表(批量使用自增表,设置初始值,自增幅度)
  4. goto在c语言中的作用,关键字goto在C语言中的使用
  5. 简单支付验证(SPV)与创新
  6. 基于倒谱法和线性预测法估计基音频率(MATLAB和Python)
  7. python 面向对象 私有化浅析
  8. 利用反射做类参数的校验
  9. 学 Python 最大的 1 个误区,看看你中招了吗?
  10. 嵌套点击事件只执行第一次
  11. xshell 无法定位输入点_linux基础知识个人总结
  12. 【基础】吴恩达机器学习笔记 - 线性回归 代价函数 梯度下降
  13. Android技术专家 高焕堂 推荐这本书
  14. php中简单ubb案例,php Ubb代码编辑器函数代码
  15. Linux软件安装及修改软件源
  16. 国内首款 FeliCa协议NFC读卡器芯片 FSV9512 国产替代NXP PN512 同时可兼容 A卡 B卡 每月KK级出货量
  17. 期待了1年多了《黑客攻防实战编程》终于面世了!
  18. PHP判断PC浏览器与手机浏览器的方法
  19. ajax方法参数详解,$.ajax()方法参数详解
  20. css保持长宽比拉伸,使用CSS保持div的长宽比

热门文章

  1. 《企业大数据系统构建实战:技术、架构、实施与应用》——第1章 企业大数据战略定位 1.1 宏观...
  2. DataTable.ImportRow()与DataTable.Rows.Add()的区别
  3. Playframework项目启动后自动停止问题记录
  4. 我在阿里云玩蟹科技分享篇
  5. LeetCode 504. Base 7 (C++)
  6. Java并发 乐观锁和悲观锁 乐观锁的一种实现方式CAS
  7. Apache(httpd) 报错You don't have permission to access /on this server.
  8. 重构代码的tricks
  9. phpcms 调用多级栏目和多级栏目下的文章列表
  10. java用swing日历标记节日_如何用JavaSwing作一个日历控制程序?