botón de estancia: no hay repetición de 3 caracteres de la subcadena más larga

botón de estancia: no hay repetición de 3 caracteres de la subcadena más larga

Descripción Título:
Dada una cadena, te enteras de que no contiene un sub-longitud de la cadena más larga de caracteres repetidos.

Ejemplo 1:

De entrada: "abcabcbb"
de salida: 3
Explicación: Debido a que la subcadena más larga de caracteres sin repetición es "abc", por lo que su longitud es de 3.
Ejemplo 2:

De entrada: "bbbbb"
de salida: 1
Explicación: Debido a que la subcadena más larga se repite sin caracteres "b", por lo que su longitud es 1.
Ejemplo 3:

De entrada: "pwwkew"
de salida: 3
Explicación: Debido a la más larga sub-cadena se repite sin caracteres "WKE", por lo que su longitud es de 3.
Tenga en cuenta que su respuesta debe ser una subcadena de longitud, "pwke" es una sub-secuencia, no es una subcadena.

Fuente: estancia botón (LeetCode)
enlace: https: //leetcode-cn.com/problems/longest-substring-without-repeating-characters
propiedad de la deducción de todas las redes. reimpresión comercial póngase en contacto con la reimpresión autorizada oficial, no comercial por favor indique la fuente.

**** Solución: Utilice un método similar al hachís, con espacio de almacenamiento a cambio de la comodidad del recorrido.

int lengthOfLongestSubstring(char *s){
	int max=0;//	用来记录当前已探测到的最长子串的长度
	int head=0;
	int rear=0;
	int table[128]={0};
	for(head=0;head<strlen(s);head++){
		int i = (int)s[head];
		if(table[i]!=0){//	发生重复,更新rear位置
			rear = (table[i]>=rear)?table[i]:rear;
		}
		max = (max>=(head-rear+1))?max:head-rear+1;	//	更新最大不重复子串的位数
	}
	return ret;
}
Publicado 24 artículos originales · ganado elogios 25 · vistas 4108

Supongo que te gusta

Origin blog.csdn.net/qq_44972915/article/details/104248277
Recomendado
Clasificación