字符串左侧补0_(48)C++面试之最长不含重复字符的子字符串(动态规划)
// 面试题48:最长不含重复字符的子字符串
// 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子
// 字符串的长度。假设字符串中只包含从'a'到'z'的字符。
#include <vector>
#include <string>
#include <iostream>using namespace std;int maxlengstring(const string& str)
{if(str.empty())return 0;//定义一个值都为-1的pos[]的26个数std::vector<int>position(26,-1);int maxlen=0;int curlen=0;for(size_t i=0;i<str.size();i++){int pos=str[i]-'a';//abcdarca//第i位上的字母在左侧从未出现 f(i)=f(i-1)+1if(position[pos]<0)curlen+=1;else{int d=i-position[pos];// d<=f(i-1)时 f(i)=d此时上一次出现的位置在上一个最长不重复子串内部if(curlen>=d)curlen=d;//d>f(i-1) 时 f(i)=f(i-1)+1else{curlen+=1;}}position[pos]=i;maxlen=maxlen>curlen?maxlen:curlen; }return maxlen;
}int main()
{string str="abcdadrcadfa";int len=maxlengstring(str);cout<<"len: "<<len;
}
字符串左侧补0_(48)C++面试之最长不含重复字符的子字符串(动态规划)相关推荐
- 【LeetCode】剑指 Offer 48. 最长不含重复字符的子字符串
[LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 文章目录 [LeetCode]剑指 Offer 48. 最长不含重复字符的子字符串 package offer;import ...
- 【剑指Offer打卡】48. 最长不含重复字符的子字符串
剑指 Offer 48.最长不含重复字符的子字符串 JavaScript剑指Offer题解
- 面试题48:最长不含重复字符的子字符串
目录 1.动态规划 2.滑动数组 1.动态规划 先来分析一下吧...这题我们很容易想到,假设f(i)表示以下标i结尾的s[i]中的最长不含重复字符的子字符串,那么f(i)=f(i-1)+1是不是很容易 ...
- 求最长不含重复字符的子字符串——C++
声明:本文原题主要来自力扣,记录此博客主要是为自己学习总结,不做任何商业等活动! 一.原题描述 剑指 Offer 48. 最长不含重复字符的子字符串 请从字符串中找出一个最长的不包含重复字符的子字符串 ...
- 最长不含重复字符的子字符串(C++)
最长不含重复字符的子字符串 描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 数据范围:s.length≤40000 示例1 输入: "abcabcb ...
- 【字符串】最长不含重复字符的子字符串
1. 题目描述 题目链接:最长不含重复字符的子字符串 2. 题目分析 我们可以看到,题目要求我们求在一个区间内不含有重复的字符串,这种区间,我们第一时间应该想到滑动窗口. 这个题目的巧妙在于:我们利用 ...
- 剑指offer48-最长不含重复字符的子字符串(双指针经典)
问题描述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 ...
- 【剑指offer】面试题48. 最长不含重复字符的子字符串(java)
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &quo ...
- 【算法】剑指 Offer 48. 最长不含重复字符的子字符串
1.概述 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 ...
最新文章
- php solr 更新数据类型,Solr更新文档数据
- 万字长文|线性代数的本质课程笔记完整合集!
- 将图形以PNG格式输出到浏览器或文件
- NYOJ10: skiing(DFS + DP)
- [剑指offer][JAVA]面试题第[34]题[二叉树中和为某一值的路径][回溯]
- mysql8.0.20 64位安装教程_MySQL8.0.20压缩版本安装教程图文详解
- 解决安卓SDK更新连不通问题
- markdown 本地链接_markdown多平台发布及七牛图床使用
- 三、pgAdmin 4 布局设置
- w ndows无法完成格式化,win10系统windows无法完成格式化的处理方法
- java json解析(转)
- Box plot (箱形图) 中 quartile (四分位数)原理,及python_matplotlib中Q1和Q3定义的不同
- Anaconda安装报错(Failed to create Anaconda menus)
- Linux系统打印机打印乱码,Linux输入中文乱码问题(亲测有效)
- HashMap在JDK1.7版本头插法实现解析
- css蒙层和新手引导的实现方式
- Java操作数据库方式五MyBatis使用入门
- MemCached缓存操作
- 一文读懂机器学习中的贝叶斯统计学
- 从苏宁电器到卡巴斯基第26篇:难忘的三年硕士时光 IV