Compruebe si una string contiene dos substrings que no se superponen «geek» y «keeg»

Dada una string str , la tarea es verificar si la string contiene dos substrings que no se superponen s1 = «geek» y s2 = «keeg» de modo que s2 comience después de que finalice s1 .
Ejemplos: 
 

Entrada: str = «geekeekeeg» 
Salida: Sí  ,
«geek» y «keeg» están presentes en la 
string dada sin superponerse.
Entrada: str = «geekeeg» 
Salida: No 
«geek» y «keeg» están presentes, pero se superponen. 
 

Enfoque: compruebe si la substring «geek» aparece antes de «keeg» en la string dada. Este problema es más simple cuando usamos una función predefinida strstr para encontrar la aparición de una substring en la string dada.
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function that returns true
// if s contains two non overlapping
// sub strings "geek" and "keeg"
bool isValid(char s[])
{
    char* p;
 
    // If "geek" and "keeg" are both present
    // in s without over-lapping and "keeg"
    // starts after "geek" ends
    if ((p = strstr(s, "geek")) && (strstr(p + 4, "keeg")))
        return true;
 
    return false;
}
 
// Driver code
int main()
{
    char s[] = "geekeekeeg";
 
    if (isValid(s))
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}

Java

// Java implementation of the approach
class GFG
{
 
// Function that returns true
// if s contains two non overlapping
// sub Strings "geek" and "keeg"
static boolean isValid(String s)
{
    // If "geek" and "keeg" are both present
    // in s without over-lapping and "keeg"
    // starts after "geek" ends
    if ((s.indexOf( "geek")!=-1) &&
        (s.indexOf( "keeg",s.indexOf( "geek") + 4)!=-1))
        return true;
 
    return false;
}
 
// Driver code
public static void main(String args[])
{
    String s = "geekeekeeg";
 
    if (isValid(s))
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by Arnab Kundu

Python3

# Python 3 implementation of the approach
 
# Function that returns true
# if s contains two non overlapping
# sub strings "geek" and "keeg"
def isValid(s):
    p=""
 
    # If "geek" and "keeg" are both present
    # in s without over-lapping and "keeg"
    # starts after "geek" ends
    p=s.find("geek")
    if (s.find("keeg",p+4)):
        return True
 
    return False
 
# Driver code
if __name__ == "__main__":
    s = "geekeekeeg"
 
    if (isValid(s)):
        print("Yes")
    else:
        print("No")
 
# This code is contributed by ChitraNayal

C#

// C# implementation of the approach
 
using System;
 
class GFG
{
 
// Function that returns true
// if s contains two non overlapping
// sub Strings "geek" and "keeg"
static bool isValid(string s)
{
    // If "geek" and "keeg" are both present
    // in s without over-lapping and "keeg"
    // starts after "geek" ends
    if ((s.IndexOf( "geek")!=-1) &&
        (s.IndexOf( "keeg",s.IndexOf( "geek") + 4)!=-1))
        return true;
 
    return false;
}
 
// Driver code
public static void Main()
{
    string s = "geekeekeeg";
 
    if (isValid(s))
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
}
 
// This code is contributed by AnkitRai01

Javascript

<script>
 
// JavaScript implementation of the approach
 
// Function that returns true
// if s contains two non overlapping
// sub Strings "geek" and "keeg"
function isValid(s)
{
    // If "geek" and "keeg" are both present
    // in s without over-lapping and "keeg"
    // starts after "geek" ends
    if ((s.indexOf("geek") != -1) &&
        (s.indexOf("keeg", s.indexOf("geek") + 4) != -1))
        return true;
 
    return false;
}
 
// Driver Code
var s = "geekeekeeg";
 
if (isValid(s))
    document.write("Yes");
else
    document.write("No");
    
// This code is contributed by Khushboogoyal499
 
</script>
Producción: 

Yes

 

Publicación traducida automáticamente

Artículo escrito por pawan_asipu 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 *