(Java) leetcode-14 más largo prefijo común

[Prefijo común más larga]

título

Escribir una función para encontrar la cadena de prefijo común más larga entre una matriz de cadenas.

Si no hay un prefijo común, devolverá una cadena vacía “”.

Ejemplo 1:

Input: ["flower","flow","flight"]
Output: "fl"

Ejemplo 2:

Input: ["dog","racecar","car"]
Output: ""

Explicación: No hay ningún prefijo común entre las cadenas de entrada.
Nota:

Todas las entradas dadas están en letras minúsculas az.

pensamiento

La primera cadena en la secuencia de array (pre) para contrastar la parte trasera, detrás para ver si cadena de prefijo pre, si no, la disminución de la longitud de la pre (suprimido del carácter al final), la cadena puede ser pre hasta hasta prefijo. Cuando está marcada Después de una cadena subcadena continúa para comprobar la parte posterior, y finalmente convertido en un prefijo pre común.
complejidad del tiempo: O (s) S es el número total de caracteres en la cadena de modo que el
espacio de la complejidad: O (1)

código

PS: strs[i].indexOf(pre)Las devoluciones no recuperados en el objetivo respectivo es -1, si el retorno 0 es STRs pre [i] prefijo.

class Solution {
	   public String longestCommonPrefix(String[] strs) {
	    if(strs == null || strs.length == 0)    return "";
	    String pre = strs[0];
	    int i = 1;
	    while(i < strs.length){
	        while(strs[i].indexOf(pre) != 0) //只要pre不出现在该串的首尾
	            pre = pre.substring(0,pre.length()-1);//去掉pre的最后一位重新检测
	        i++;
	    }
	    return pre;
	}
}

Presentar los resultados

Duración: 3 ms, más rápido que el 92,12% de las presentaciones en línea para Java común más larga de prefijo.
Uso de memoria: 38,9 MB, menos de 17.51% de las presentaciones en línea para Java común más larga de prefijo.

Publicados 143 artículos originales · ganado elogios 45 · Vistas a 70000 +

Supongo que te gusta

Origin blog.csdn.net/z714405489/article/details/88984117
Recomendado
Clasificación