句子中每个单词的 ASCII 值的总和
给定一个英文句子(也可以包含数字),我们需要计算并打印该句子中每个单词的字符的 ASCII 值的总和。
例子:
Input : GeeksforGeeks, a computer science portal for geeks
Output : Sentence representation as sum of ASCII each character in a word:
1361 97 879 730 658 327 527
Total sum -> 4579
Here, [GeeksforGeeks, ] -> 1361, [a] -> 97, [computer] -> 879, [science] -> 730
[portal] -> 658, [for] -> 327, [geeks] -> 527
Input : I am a geek
Output : Sum of ASCII values:
73 206 97 412
Total sum -> 788
方法:
- 遍历字符串的长度并继续将字符转换为它们的 ASCII
- 继续累加值直到句子结束。
- 当我们遇到空格字符时,我们存储为该单词计算的总和并将总和再次设置为零。
- 稍后,我们打印元素
C++
// C++ implementation for representing
// each word in a sentence as sum of
// ASCII values of each word
#include
#include
#include
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& 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 = "GeeksforGeeks a computer science "
"portal for Geeks";
vector 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 = "GeeksforGeeks, a computer science portal for geeks";
// 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 = "GeeksforGeeks a computer science portal for Geeks"
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 = "GeeksforGeeks, a computer " +
"science portal for geeks";
// 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
输出:
Sum of ASCII values:
1317 97 879 730 658 327 495
Total sum -> 4503
该方法的复杂性是
https://youtu.be/B3dghSG2R
-Y