Print each word in a sentence with their corresponding average of ASCII values

Given a sentence, the task is to find the average of ASCII values of each word in the sentence and print it with the word.

Examples:

Input: sentence = "Learning a string algorithm"
Output: 
Learning - 102
a - 97
string - 110
algorithm - 107

Approach:

  1. Take an empty string and start traversing the sentence letter by letter.
  2. Add letter to the string and add its ASCII value to the sum.
  3. If there is an empty space calculate the average by dividing the sum by the length of the string (word)
  4. Clear the string so that it can be used for the next word
  5. Also set the sum to zero.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program of the above approach
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to calculate the
// average of each word in a sentence
void calculateAverage(string sentence)
{
    // Word initialised to an empty string
    string word = "";
  
    // Sum of ascii values
    int sum = 0;
  
    int len = sentence.length();
  
    for (int i = 0; i < len; ++i) {
  
        // If character is a space
        if (sentence[i] == ' ') {
  
            // Calculate the average
            int average = sum / word.length();
  
            cout << word << " - "
                 << average << endl;
  
            // Clear the word and
            // set the sum to 0
            word.clear();
            sum = 0;
        }
  
        else {
  
            // Add the ascii value to sum and
            // also add the letter to the word
            sum += sentence[i];
            word += sentence[i];
        }
    }
  
    // Calculate the average of last word
    int average = sum / word.length();
  
    cout << word << " - " << average;
}
  
// Driver code
int main()
{
  
    // Get the sentence
    string sentence
            = "Learning a string algorithm";
  
    // Calculate the average
    calculateAverage(sentence);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program of the above approach 
import java.util.*;
public class Solution
{
// Function to calculate the 
// average of each word in a sentence 
static void calculateAverage(String sentence) 
    // Word initialised to an empty string 
    String word = ""
  
    // Sum of ascii values 
    int sum = 0
  
    int len = sentence.length(); 
  
    for (int i = 0; i < len; ++i) { 
  
        // If character is a space 
        if (sentence.charAt(i) == ' ') { 
  
            // Calculate the average 
            int average = sum / word.length(); 
  
            System.out.println( word + " - "+ average ); 
  
            // Clear the word and 
            // set the sum to 0 
            word=""
            sum = 0
        
  
        else
  
            // Add the ascii value to sum and 
            // also add the letter to the word 
            sum += sentence.charAt(i); 
            word += sentence.charAt(i); 
        
    
  
    // Calculate the average of last word 
    int average = sum / word.length(); 
  
System.out.print( word + " - " + average); 
  
// Driver code 
public static void main(String[] args)
  
    // Get the sentence 
    String sentence 
            = "Learning a string algorithm"
  
    // Calculate the average 
    calculateAverage(sentence); 
  
}
//contributed by Arnab Kundu

chevron_right


Python 3

# Python 3 program of the above approach

# Function to calculate the
# average of each word in a sentence
def calculateAverage(sentence):

# Word initialised to
# an empty string
word = “”

# Sum of ascii values
sum = 0

l = len(sentence)

for i in range(l):

# If character is a space
if (sentence[i] == ‘ ‘) :

# Calculate the average
average = sum // len(word)

print(word , ” – “, average)

# Clear the word and
# set the sum to 0
word = “”
sum = 0

else :

# Add the ascii value to sum and
# also add the letter to the word
sum += ord(sentence[i])
word += sentence[i]

# Calculate the average of last word
average = sum // len(word)

print(word , ” – ” , average)

# Driver code
if __name__ == “__main__”:

# Get the sentence
sentence = “Learning a string algorithm”

# Calculate the average
calculateAverage(sentence)

# This code is contributed
# by ChitraNayal

C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of above approach
using System;
  
class GFG 
// Function to calculate the 
// average of each word in a sentence 
static void calculateAverage(String sentence) 
    // Word initialised to an empty string 
    String word = ""
  
    // Sum of ascii values 
    int sum = 0; 
  
    int len = sentence.Length; 
    int average = 0;
    for (int i = 0; i < len; ++i)
    
          
        // If character is a space 
        if (sentence[i] == ' ')
        
  
            // Calculate the average 
            average = sum / word.Length; 
  
            Console.WriteLine(word + " - " + average); 
  
            // Clear the word and 
            // set the sum to 0 
            word=""
            sum = 0; 
        
  
        else 
        
  
            // Add the ascii value to sum and 
            // also add the letter to the word 
            sum += sentence[i]; 
            word += sentence[i]; 
        
    
  
    // Calculate the average of last word 
    average = sum / word.Length; 
  
    Console.Write(word + " - " + average); 
  
// Driver code 
public static void Main() 
    // Get the sentence 
    String sentence = "Learning a string algorithm"
  
    // Calculate the average 
    calculateAverage(sentence); 
  
// This code is contributed 
// by PrinciRaj1992

chevron_right


Output:

Learning - 102
a - 97
string - 110
algorithm - 107

Time Complexity: O(N)



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.