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>
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