3. Longest Substring Without Repeating Characters
题目描述
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given “abcabcbb”, the answer is “abc”, which the length is 3.
Given “bbbbb”, the answer is “b”, with the length of 1.
Given “pwwkew”, the answer is “wke”, with the length of 3. Note that the answer must be a substring, “pwke” is a subsequence and not a substring.
Subscribe to see which companies asked this question.
解题思路
对每个字符进行遍历,记录每个不重复子字符长度,当遇到重复字符,则从重复字符处开始计数。
代码实现
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int sizeofs=s.length();
int temp=0;
vector<int> arrayofsize;
for(int i=0; i<=sizeofs; i++){
for(int j=temp; j<i; j++){
if(s[i]==s[j]){//重复
arrayofsize.push_back(i-temp);//记录字符长度
temp=j+1;//记录重复的位置
}
else{
arrayofsize.push_back(i-temp);//记录字符长度
}
}
}
int max=0;
for(int i=0; i<arrayofsize.size(); i++){//遍历出最大字符长度
if(arrayofsize[i]>max) max = arrayofsize[i];
}
return max;
}
};