Calculate the frequency of each word in the given string - GeeksforGeeks

26 Nov, 2021
Given a string str, the task is to find the frequency of each word in a string.
Examples: 
Input: str = “Geeks For Geeks” Output: For 1 Geeks 2 Explanation: For occurs 1 time and Geeks occurs 2 times in the given string str.
Input: str = “learning to code is learning to create and innovate” Output: and 1 code 1 create 1 innovate 1 is 1 learning 2 to 2 Explanation: The words and, code, create, innovate, is occurs 1 time; and learning, to occurs 2 times in the given string str. 
Approach: To solve the problem mentioned above we have to follow the steps given below: 
Use a Map data structure to store the occurrence of each word in the string.
Traverse the entire string and check whether the current word is present in map or not. If it is present, then update the frequency of the current word else insert the word with frequency 1.
Traverse in the map and print the frequency of each word.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
// C++ program to calculate the frequency// of each word in the given string #include <bits/stdc++.h>using namespace std; // Function to print frequency of each wordvoid printFrequency(string str){    map<string, int> M;     // String for storing the words    string word = "";     for (int i = 0; i < str.size(); i++) {         // Check if current character        // is blank space then it        // means we have got one word        if (str[i] == ' ') {             // If the current word            // is not found then insert            // current word with frequency 1            if (M.find(word) == M.end()) {                M.insert(make_pair(word, 1));                word = "";            }             // update the frequency            else {                M[word]++;                word = "";            }        }         else            word += str[i];    }     // Storing the last word of the string    if (M.find(word) == M.end())        M.insert(make_pair(word, 1));     // Update the frequency    else        M[word]++;     // Traverse the map    // to print the  frequency    for (auto& it : M) {        cout << it.first << " - "             << it.second             << endl;    }} // Driver Codeint main(){    string str = "Geeks For Geeks";     printFrequency(str);    return 0;}
// Java implementation of the above// approach import java.util.Map;import java.util.TreeMap;public class Frequency_Of_String_Words {        // Function to count frequency of    // words in the given string    static void count_freq(String str)    {        Map<String,Integer> mp=new TreeMap<>();         // Splitting to find the word        String arr[]=str.split(" ");         // Loop to iterate over the words        for(int i=0;i<arr.length;i++)        {            // Condition to check if the            // array element is present            // the hash-map            if(mp.containsKey(arr[i]))            {                mp.put(arr[i], mp.get(arr[i])+1);            }            else            {                mp.put(arr[i],1);            }        }                // Loop to iterate over the        // elements of the map        for(Map.Entry<String,Integer> entry:                    mp.entrySet())        {            System.out.println(entry.getKey()+                    " - "+entry.getValue());        }    }     // Driver Code    public static void main(String[] args) {        String str = "Geeks For Geeks";         // Function Call        count_freq(str);    }}
# Python3 program to calculate the frequency# of each word in the given string # Function to print frequency of each worddef printFrequency(strr):    M = {}         # string for storing the words    word = ""         for i in range(len(strr)):                 # Check if current character        # is blank space then it        # means we have got one word        if (strr[i] == ' '):                         # If the current word                # is not found then insert            # current word with frequency 1            if (word not in M):                M[word] = 1                word = ""                         # update the frequency            else:                M[word] += 1                word = ""                 else:            word += strr[i]         # Storing the last word of the string    if (word not in M):        M[word] = 1         # Update the frequency    else:        M[word] += 1             # Traverse the map    # to print the frequency    for it in M:        print(it, "-", M[it])     # Driver Codestrr = "Geeks For Geeks"printFrequency(strr) # This code is contributed by shubhamsingh10
// C# implementation of the above// approachusing System;using System.Collections.Generic; class GFG{ // Function to count frequency of// words in the given stringstatic void count_freq(String str){    SortedDictionary<String,                     int> mp = new SortedDictionary<String,                                                    int>();     // Splitting to find the word    String []arr = str.Split(' ');     // Loop to iterate over the words    for(int i = 0; i < arr.Length; i++)    {                 // Condition to check if the        // array element is present        // the hash-map        if (mp.ContainsKey(arr[i]))        {            mp[arr[i]] = mp[arr[i]] + 1;        }        else        {            mp.Add(arr[i], 1);        }    }         // Loop to iterate over the    // elements of the map    foreach(KeyValuePair<String, int> entry in mp)    {        Console.WriteLine(entry.Key + " - " +                          entry.Value);    }} // Driver Codepublic static void Main(String[] args){    String str = "Geeks For Geeks";     // Function call    count_freq(str);}} // This code is contributed by Rajput-Ji
For - 1
Geeks - 2
 
SHUBHAMSINGH10
Rajput-Ji
surinderdawra388
ankita_saini
cpp-map
frequency-counting
STL
School Programming
Strings
Strings
STL
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Constructors in Java
Exceptions in Java
Ternary Operator in Python
Inline Functions in C++
Destructors in C++
Write a program to reverse an array or string
Longest Common Subsequence | DP-4
Write a program to print all permutations of a given string
Check for Balanced Brackets in an expression (well-formedness) using Stack
KMP Algorithm for Pattern Searching