Dada una string str que consta de una oración, la tarea es encontrar la cantidad de palabras en la oración dada que terminan con el sufijo dado suf .
Ejemplos:
Entrada: str = «GeeksForGeeks es un portal de informática para geeks», suff = «ks»
Salida: 2
«GeeksForGeeks» y «geeks» son las únicas palabras que terminan en «ks».Entrada: str = «Esta es una string de muestra», suff = «es»
Salida: 2
Acercarse:
- Extrae todas las palabras de la oración dada usando el método split() .
- Ahora, para cada palabra, verifique si las palabras actuales terminan con el sufijo dado usando el método extremosCon() .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; template <size_t N> void splitString(string (&arr)[N], string str) { int n = 0; istringstream iss(str); for(auto it = istream_iterator<string>(iss); it != istream_iterator<string>() && n < N; ++it, ++n) arr[n] = *it; } inline bool ends_with(std::string const& value, std::string const& ending) { if (ending.size() > value.size()) return false; return std::equal(ending.rbegin(), ending.rend(), value.rbegin()); } // Function to return the count of words // in the given sentence that // end with the given suffix int endingWith(string str, string suff) { // To store the count int cnt = 0; const int size = 50; string words[size]; // Extract words from the sentence splitString(words, str); // For every word for(int i = 0; i < size; i++) { // If it ends with the given suffix if (ends_with(words[i], suff)) cnt++; } return cnt; } // Driver code int main() { string str = "GeeksForGeeks is a computer " "science portal for geeks"; string suff = "ks"; cout << endingWith(str, suff); } // This code is contributed by pratham76
Java
// Java implementation of the approach class GFG { // Function to return the count of words // in the given sentence that // end with the given suffix static int endingWith(String str, String suff) { // To store the count int cnt = 0; // Extract words from the sentence String words[] = str.split(" "); // For every word for (int i = 0; i < words.length; i++) { // If it ends with the given suffix if (words[i].endsWith(suff)) cnt++; } return cnt; } // Driver code public static void main(String args[]) { String str = "GeeksForGeeks is a computer" + " science portal for geeks"; String suff = "ks"; System.out.print(endingWith(str, suff)); } }
Python3
# Function declared to # return the count of words # in the given sentence that # end with the given suffix def endingWith( str , suff ): # Variable to store count c = 0 # split function used to extract words # from sentence in form of list wrd = str.split(" ") # using for loop with 'in' to extract # elements of list for l in wrd: if l.endswith(suff): c += 1 # returning the count return c # Driver Code str = "GeeksForGeeks is a computer science portal for geeks" suff = "ks" # printing the final cde print(endingWith(str, suff )) # This code is contributed by Animesh_Gupta
C#
// C# implementation of the approach using System; class GFG{ // Function to return the count of words // in the given sentence that // end with the given suffix static int endingWith(string str, string suff) { // To store the count int cnt = 0; string []sep = {" "}; // Extract words from the sentence string []words = str.Split(sep, StringSplitOptions.RemoveEmptyEntries); // For every word for (int i = 0; i < words.Length; i++) { // If it ends with the given suffix if (words[i].EndsWith(suff)) cnt++; } return cnt; } // Driver code public static void Main(string []args) { string str = "GeeksForGeeks is a computer" + " science portal for geeks"; string suff = "ks"; Console.Write(endingWith(str, suff)); } } // This code is contributed by rutvik
Producción:
2