Programa Java para verificar si una string es una substring de otra

Dadas dos strings s1 y s2, encuentre si s1 es una substring de s2. En caso afirmativo, devuelve el índice de la primera aparición, de lo contrario, devuelve -1.

Ejemplos: 

Input: s1 = "for", s2 = "geeksforgeeks"
Output: 5
Explanation:
String "for" is present as a substring
of s2.

Input: s1 = "practice", s2 = "geeksforgeeks"
Output: -1.
Explanation:
There is no occurrence of "practice" in
"geeksforgeeks"

Enfoque simple: la idea es ejecutar un ciclo de principio a fin y para cada índice en la string dada, verifique si la substring se puede formar a partir de ese índice. Esto se puede hacer ejecutando un bucle anidado que atraviese la string dada y, en ese bucle, ejecute otro bucle que busque substrings de cada índice. 
Por ejemplo, considere que hay una string de longitud N y una substring de longitud M. Luego ejecute un ciclo anidado, donde el ciclo externo va de 0 a (NM) y el ciclo interno de 0 a M. Para un índice muy verificado si la substring atravesada por el bucle interno es la substring dada o no. 

Java

// Java program to check if a string is
// substring of other.
class GFG 
{
    // Returns true if s1 is substring of s2
    static int isSubstring(
           String s1, String s2)
    {
        int M = s1.length();
        int N = s2.length();
  
        // A loop to slide pat[] one by one 
        for (int i = 0; i <= N - M; i++) 
        {
            int j;
  
            /* For current index i, check for
               pattern match */
            for (j = 0; j < M; j++)
                if (s2.charAt(i + j)
                    != s1.charAt(j))
                    break;
  
            if (j == M)
                return i;
        }
        return -1;
    }
  
    // Driver code 
    public static void main(String args[])
    {
        String s1 = "for";
        String s2 = "geeksforgeeks";
  
        int res = isSubstring(s1, s2);
  
        if (res == -1)
            System.out.println("Not present");
        else
            System.out.println(
            "Present at index " + res);
    }
}
// This code is contributed by JaideepPyne.

Producción:

Present at index 5

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *