题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
https://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
int lengthOfLongestSubstring(string s) {
// write code here
int n = s.size();
if(n == 0){
return 0;
}
vector<int> dp(n,1);
int max_len = 1;
for(int i = 1;i<n;i++)
{
//从s[i]开始寻找第一个与s[j]相同的字符
int j = i - 1;
for(;j>=0;j--)
{
if(s[j] == s[i]){
break;
}
}
if(j <= i-1 - dp[i-1]){
dp[i] = dp[i-1] + 1;
}
else{
dp[i] = i - j;
}
max_len = max(max_len,dp[i]);
}
return max_len;
}
};
我一次就oc了,我太棒了,我学会这个思路了!
查看4道真题和解析