某网站自己做中性笔,微信怎么开店铺小程序,百度搜索引擎入口,网站开发有多少种// 面试题48#xff1a;最长不含重复字符的子字符串// 题目#xff1a;请从字符串中找出一个最长的不包含重复字符的子字符串#xff0c;计算该最长子// 字符串的长度。假设字符串中只包含从a到z的字符。#include vector
#include string
#include iost…// 面试题48最长不含重复字符的子字符串// 题目请从字符串中找出一个最长的不包含重复字符的子字符串计算该最长子// 字符串的长度。假设字符串中只包含从a到z的字符。
#include vector
#include string
#include iostreamusing namespace std;int maxlengstring(const string str)
{if(str.empty())return 0;//定义一个值都为-1的pos[]的26个数std::vectorintposition(26,-1);int maxlen0;int curlen0;for(size_t i0;istr.size();i){int posstr[i]-a;//abcdarca//第i位上的字母在左侧从未出现 f(i)f(i-1)1if(position[pos]0)curlen1;else{int di-position[pos];// df(i-1)时 f(i)d此时上一次出现的位置在上一个最长不重复子串内部if(curlend)curlend;//df(i-1) 时 f(i)f(i-1)1else{curlen1;}}position[pos]i;maxlenmaxlencurlen?maxlen:curlen; }return maxlen;
}int main()
{string strabcdadrcadfa;int lenmaxlengstring(str);coutlen: len;
}