Directorio de artículos
Descripción del problema
Busque la subcadena más larga sin repetir caracteres de la cadena y calcule la longitud de la subcadena más larga.
Informe de resolución de problemas.
significa
La longitud de la subcadena más larga que termina con caracteres.
Recuerda
La posición inicial es
buscar
:
- Transversal inversa ,
- Si no existe , entonces , permanece sin cambios;
- Si existe , entonces , mientras tanto actualiza a 。
Complejidad del tiempo: es mejor
, lo peor es
Complejidad espacial:
Código de implementación
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int n=s.size(),ans=1,flag=0,i,j,p=0;
if(n==0) return 0;
vector<int>dp(n,1);
for(i=1;i<n;i++){
for(j=i-1;j>=p;j--){
if(s[i]==s[j]){
flag=1;
break;
}
}
if(!flag)
dp[i]=dp[i-1]+1;
else{
dp[i]=i-j;
p=j;
flag=0;
}
ans=max(ans,dp[i]);
}
return ans;
}
};
Referencias
[1] Pregunta 48 de la entrevista de Leetcode. La subcadena más larga sin caracteres repetidos