Encuentra la palabra de una oración dada con la palabra dada como prefijo

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:

  1. Extrae las palabras de la oración usando el stringstream y guárdalas en un vector de strings.
  2. Ahora, recorra la array y verifique qué palabra contiene la palabra dada como su propio prefijo.
  3. 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>
Producción: 

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

Deja una respuesta

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