Dada una string S que representa una oración y otra palabra de string , la tarea es encontrar la palabra de S que tiene la palabra de string como prefijo . Si tal palabra no está presente en la string, imprima -1 .
Ejemplos:
Entrada: S = «Bienvenido a Geeksforgeeks», palabra = «Gee»
Salida: Geeksforgeeks
Explicación:
La palabra «Geeksforgeeks» en la oración tiene el prefijo «Gee».Entrada: s=”Programación competitiva”, word=”kdflk”
Salida: -1
Explicación:
Ninguna palabra en la string tiene “kdflk” como prefijo.
Enfoque: siga los pasos a continuación para encontrar qué palabra tiene el prefijo dado:
- Extrae las palabras de la oración usando el stringstream y guárdalas en un vector de strings.
- Ahora, recorra la array y verifique qué palabra contiene la palabra dada como su propio prefijo.
- Si se encuentra que es cierto para cualquier palabra, imprima esa palabra. De lo contrario, si no se encuentra tal palabra, imprima -1 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to find the position // of the string having word as prefix string isPrefixOfWord(string sentence, string Word) { stringstream ss(sentence); // Initialize a vector vector<string> v; string temp; // Extract words from the sentence while (ss >> temp) { v.push_back(temp); } // Traverse each word for (int i = 0; i < v.size(); i++) { // Traverse the characters of word for (int j = 0; j < v[i].size(); j++) { // If prefix does not match if (v[i][j] != Word[j]) break; // Otherwise else if (j == Word.size() - 1) // Return the word return v[i]; } } // Return -1 if not present return "-1"; } // Driver code int main() { string s = "Welcome to Geeksforgeeks"; string word = "Gee"; cout << isPrefixOfWord(s, word) << endl; return 0; }
Java
// Java program for the above approach import java.util.*; import java.io.*; import java.lang.Math; class GFG{ // Function to find the position // of the string having word as prefix static String isPrefixOfWord(String sentence, String Word) { String a[] = sentence.split(" "); // Initialize an ArrayList ArrayList<String> v = new ArrayList<>(); // Extract words from the sentence for(String e : a) v.add(e); // Traverse each word for(int i = 0; i < v.size(); i++) { // Traverse the characters of word for(int j = 0; j < v.get(i).length(); j++) { // If prefix does not match if (v.get(i).charAt(j) != Word.charAt(j)) break; // Otherwise else if (j == Word.length() - 1) // Return the word return v.get(i); } } // Return -1 if not present return "-1"; } // Driver code public static void main(final String[] args) { String s = "Welcome to Geeksforgeeks"; String word = "Gee"; System.out.println(isPrefixOfWord(s, word)); } } // This code is contributed by bikram2001jha
Python3
# Python3 program for the # above approach # Function to find the # position of the string # having word as prefix def isPrefixOfWord(sentence, word): a=sentence.split(" ") # Initialize an List v = [] # Extract words from # the sentence for i in a: v.append(i) # Traverse each word for i in range(len(v)): # Traverse the characters of word for j in range(len(v[i])): # If prefix does not match if(v[i][j] != word[j]): break # Otherwise elif(j == len(word) - 1): # Return the word return v[i] # Return -1 if not present return -1 # Driver code s = "Welcome to Geeksforgeeks" word = "Gee" print(isPrefixOfWord(s, word)) # This code is contributed by avanitrachhadiya2155
C#
// C# program for the above approach using System; using System.Collections.Generic; class GFG{ // Function to find the position // of the string having word as prefix static String isPrefixOfWord(String sentence, String Word) { String []a = sentence.Split(' '); // Initialize an List List<String> v = new List<String>(); // Extract words from the sentence foreach(String e in a) v.Add(e); // Traverse each word for(int i = 0; i < v.Count; i++) { // Traverse the characters of word for(int j = 0; j < v[i].Length; j++) { // If prefix does not match if (v[i][j] != Word[j]) break; // Otherwise else if (j == Word.Length - 1) // Return the word return v[i]; } } // Return -1 if not present return "-1"; } // Driver code public static void Main(String[] args) { String s = "Welcome to Geeksforgeeks"; String word = "Gee"; Console.WriteLine(isPrefixOfWord(s, word)); } } // This code is contributed by Rajput-Ji
Javascript
<script> //Javascript program for the above approach // Function to find the position // of the string having word as prefix function isPrefixOfWord(sentence, Word) { var a = sentence.split(" "); // Initialize an ArrayList var v = []; // Extract words from the sentence //for(String e : a) for(var i=0;i<a.length;i++) { v.push(a[i]); } // Traverse each word for(var i = 0; i < v.length; i++) { // Traverse the characters of word for(var j = 0; j < v[i].length; j++) { // If prefix does not match if (v[i].charAt(j) != Word[j]) break; // Otherwise else if (j == Word.length- 1) // Return the word return v[i]; } } // Return -1 if not present return "-1"; } var s = "Welcome to Geeksforgeeks"; var word = "Gee"; document.write(isPrefixOfWord(s, word)); //This code in contributed by SoumikMondal </script>
Geeksforgeeks
Complejidad de tiempo: O(L), donde L denota la longitud de la string S
Espacio auxiliar: O(L)
Publicación traducida automáticamente
Artículo escrito por IshwarGupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA