题解 | #最长不含重复字符的子字符串#
最长不含重复字符的子字符串
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了,我太棒了,我学会这个思路了!