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:
- Take an empty string and start traversing the sentence letter by letter.
- Add letter to the string and add its ASCII value to the sum.
- If there is an empty space calculate the average by dividing the sum by the length of the string (word)
- Clear the string so that it can be used for the next word
- Also set the sum to zero.
Below is the implementation of the above approach:
C++
// 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; } |
Java
// 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 |
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#
// 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 |
Javascript
<script> // JavaScript implementation of above approach // Function to calculate the // average of each word in a sentence function calculateAverage(sentence) { // Word initialised to an empty string var word = "" ; // Sum of ascii values var sum = 0; var len = sentence.length; var average = 0; for ( var i = 0; i < len; ++i) { // If character is a space if (sentence[i] === " " ) { // Calculate the average average = parseInt(sum / word.length); document.write(word + " - " + average + "<br>" ); // 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].charCodeAt(0); word += sentence[i]; } } // Calculate the average of last word average = parseInt(sum / word.length); document.write(word + " - " + average + "<br>" ); } // Driver code // Get the sentence var sentence = "Learning a string algorithm" ; // Calculate the average calculateAverage(sentence); </script> |
Learning - 102 a - 97 string - 110 algorithm - 107
Time Complexity: O(N)
Auxiliary Space: O(N)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!