Sums of ASCII values of each word in a sentence
We are given a sentence of English language(can also contain digits), we need to compute and print the sum of ASCII values of characters of each word in that sentence.
Examples:
Input : w3wiki, a computer science portal for Beginner
Output : Sentence representation as sum of ASCII each character in a word:
1361 97 879 730 658 327 527
Total sum -> 4579
Here, [w3wiki, ] -> 1361, [a] -> 97, [computer] -> 879, [science] -> 730
[portal] -> 658, [for] -> 327, [Beginner] -> 527
Input : I am a geek
Output : Sum of ASCII values:
73 206 97 412
Total sum -> 788
Approach:
- Iterate over the length of the string and keep converting the characters to their ASCII
- Keep adding up the values till the end of sentence.
- When we come across a space character, we store the sum calculated for that word and set the sum equal to zero again.
- Later, we print elements
Implementation:
C++
// C++ implementation for representing // each word in a sentence as sum of // ASCII values of each word #include <iostream> #include <string> #include <vector> using namespace std; // Function to compute the sum of ASCII values of each // word separated by a space and return the total sum // of the ASCII values, excluding the space. long long int ASCIIWordSum(string str, vector< long long int >& sumArr) { int l = str.length(); int sum = 0; long long int bigSum = 0L; for ( int i = 0; i < l; i++) { // Separate each word by // a space and store values // corresponding to each word if (str[i] == ' ' ) { bigSum += sum; sumArr.push_back(sum); sum = 0; } else // Implicit type casting sum += str[i]; } // Storing the value of last word sumArr.push_back(sum); bigSum += sum; return bigSum; } // Driver function int main() { string str = "w3wiki a computer science " "portal for Beginner" ; vector< long long int > sumArr; // Calling function long long int sum = ASCIIWordSum(str, sumArr); cout << "Sum of ASCII values:" << std::endl; for ( auto x : sumArr) cout << x << " " ; cout << endl << "Total sum -> " << sum; return 0; } |
Java
// Java program for representing // each word in a sentence as sum of // ASCII values of each word import java.util.*; import java.lang.*; class Rextester { // Function to compute the sum of ASCII values of // each word separated by a space and return the // total sum of the ASCII values, excluding the // space. static long ASCIIWordSum(String str, long sumArr[]) { int l = str.length(); int pos = 0 ; long sum = 0 ; long bigSum = 0 ; for ( int i = 0 ; i < l; i++) { // Separate each word by // a space and store values // corresponding to each word if (str.charAt(i) == ' ' ) { bigSum += sum; sumArr[pos++] = sum; sum = 0 ; } else // Implicit type casting sum += str.charAt(i); } // Storing the sum of last word sumArr[pos] = sum; bigSum += sum; return bigSum; } // Driver function public static void main(String args[]) { String str = "w3wiki, a computer science portal for Beginner" ; // Counting the number of words in the input sentence int ctr = 0 ; for ( int i = 0 ; i < str.length(); i++) if (str.charAt(i) == ' ' ) ctr++; long sumArr[] = new long [ctr + 1 ]; // Calling function long sum = ASCIIWordSum(str, sumArr); // Printing equivalent sum of the words in the // sentence System.out.println( "Sum of ASCII values:" ); for ( int i = 0 ; i <= ctr; i++) System.out.print(sumArr[i] + " " ); System.out.println(); System.out.print( "Total sum -> " + sum); } } |
Python 3
# Python 3 implementation for representing # each word in a sentence as sum of # ASCII values of each word # Function to compute the sum of ASCII # values of each word separated by a space # and return the total sum of the ASCII # values, excluding the space. def ASCIIWordSum( str , sumArr): l = len ( str ) sum = 0 bigSum = 0 for i in range (l): # Separate each word by a space # and store values corresponding # to each word if ( str [i] = = ' ' ): bigSum + = sum sumArr.append( sum ) sum = 0 else : # Implicit type casting sum + = ord ( str [i]) # Storing the value of last word sumArr.append( sum ) bigSum + = sum return bigSum # Driver Code if __name__ = = "__main__" : str = "w3wiki a computer science portal for Beginner" sumArr = [] # Calling function sum = ASCIIWordSum( str , sumArr) print ( "Sum of ASCII values:" ) for x in sumArr: print (x, end = " " ) print () print ( "Total sum -> " , sum ) # This code is contributed by ita_c |
C#
// C# program for representing each // word in a sentence as sum of // ASCII values of each word using System; class GFG { // Function to compute the sum of ASCII // values of each word separated by a // space and return the total sum of // the ASCII values, excluding the space. static long ASCIIWordSum(String str, long []sumArr) { int l = str.Length; int pos = 0; long sum = 0; long bigSum = 0; for ( int i = 0; i < l; i++) { // Separate each word by // a space and store values // corresponding to each word if (str[i] == ' ' ) { bigSum += sum; sumArr[pos++] = sum; sum = 0; } else // Implicit type casting sum += str[i]; } // Storing the sum of last word sumArr[pos] = sum; bigSum += sum; return bigSum; } // Driver function public static void Main() { String str = "w3wiki, a computer " + "science portal for Beginner" ; // Counting the number of words // in the input sentence int ctr = 0; for ( int i = 0; i < str.Length; i++) if (str[i] == ' ' ) ctr++; long []sumArr = new long [ctr + 1]; // Calling function long sum = ASCIIWordSum(str, sumArr); // Printing equivalent sum of // the words in the sentence Console.WriteLine( "Sum of ASCII values:" ); for ( int i = 0; i <= ctr; i++) Console.Write(sumArr[i] + " " ); Console.WriteLine(); Console.Write( "Total sum -> " + sum); } } // This code is contributed by nitin mittal |
Javascript
<script> // Javascript program for representing // each word in a sentence as sum of // ASCII values of each word // Function to compute the sum of ASCII values of // each word separated by a space and return the // total sum of the ASCII values, excluding the // space. function ASCIIWordSum(str,sumArr) { let l = str.length; let pos = 0; let sum = 0; let bigSum = 0; for (let i = 0; i < l; i++) { // Separate each word by // a space and store values // corresponding to each word if (str[i] == ' ' ) { bigSum += sum; sumArr[pos++] = sum; sum = 0; } else // Implicit type casting sum += str[i].charCodeAt(0); } // Storing the sum of last word sumArr[pos] = sum; bigSum += sum; return bigSum; } // Driver function let str = "w3wiki, a computer science portal for Beginner" ; // Counting the number of words // in the input sentence let ctr = 0; for (let i = 0; i < str.length; i++) if (str[i] == ' ' ) ctr++; let sumArr = new Array(ctr + 1); // Calling function let sum = ASCIIWordSum(str, sumArr); // Printing equivalent sum of the words in the // sentence document.write( "Sum of ASCII values:<br>" ); for (let i = 0; i <= ctr; i++) document.write(sumArr[i] + " " ); document.write( "<br>" ); document.write( "Total sum -> " + sum); // This code is contributed by avanitrachhadiya2155 </script> |
Output
Sum of ASCII values: 1317 97 879 730 658 327 495 Total sum -> 4503
Time Complexity: O(N), as we are using a loop to traverse N times. Where N is the length of the string that is number of characters in the sentence.
Auxiliary Space: O(W), as we are using extra space for the sumArr. Where W is the number of words in the sentence.
Contact Us