El algoritmo KMP implementa strStr ()

Implemente la función strStr ().

Dado un cordel de pajar y un cordel de aguja, encuentre la primera posición donde aparece el cordel de aguja en el cordel de pajar (comenzando en 0). Si no existe, devuelve -1.

Ejemplo 1:

Entrada: haystack = "hola", aguja = "ll"
Salida: 2
Ejemplo 2:

Entrada: haystack = "aaaaa", aguja = "bba"
Salida: -1
Descripción:

Cuando la aguja es una cuerda vacía, ¿qué valor debemos devolver? Esta es una buena pregunta en una entrevista.

Para este problema, deberíamos devolver 0 cuando la aguja es una cadena vacía. Esto es consistente con la definición de strstr () en lenguaje C e indexOf () en Java.

Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/implement-strstr Los
derechos de autor pertenecen a la red de deducción. Comuníquese con la autorización oficial para la reimpresión comercial e indique la fuente de la reimpresión no comercial.
Se puede resolver fácilmente usando el algoritmo kmp

class Solution {
    public int strStr(String haystack, String needle) {
        int hLen = haystack.length(), nLen = needle.length();
        for (int i = 0; i <= hLen - nLen; i++){ // 等于,适用于两者长度相等的情况下(包含都为 ”“)
            int j = 0;
            for (;j < nLen; j++){
                if (haystack.charAt(i + j) != needle.charAt(j)) {
                    break;
                }
            }
            if (j == nLen){
                return i;
            }
        }
        return -1;
    }
};
Publicado 44 artículos originales · elogiado 0 · visitas 500

Supongo que te gusta

Origin blog.csdn.net/qq_45955462/article/details/105373922
Recomendado
Clasificación