Given a string, the task is to find the average of ASCII values of characters in the string.
Examples:
Input: str = "for"
Output: 109
'f'= 102, 'o' = 111, 'r' = 114
(102 + 111 + 114)/3 = 109Input: str = "geeks"
Output: 105
Source: Microsoft Internship Experience
Approach: Start iterating through characters of the string and add their ASCII value to a variable. Finally, divide this sum of ASCII values of characters by the length of the string i.e., the total number of characters in the string.
Implementation:
// C++ code to find average
// of ASCII characters
#include <bits/stdc++.h>
using namespace std;
// Function to find average
// of ASCII value of chars
int averageValue(string s)
{
int sum_char = 0;
// loop to sum the ascii
// value of chars
for (int i = 0; i < s.length(); i++)
{
sum_char += (int)s[i];
}
// Returning average of chars
return sum_char / s.length();
}
// Driver code
int main()
{
string s = "GeeksforGeeks";
cout << averageValue(s);
return 0;
}
// This code is contributed
// by Subhadeep
// Java code to find average of ASCII characters
import java.io.*;
class GFG {
// Function to find average of ASCII value of chars
public static int averageValue(String s)
{
int sum_char = 0;
// loop to sum the ascii value of chars
for (int i = 0; i < s.length(); i++) {
sum_char += (int)s.charAt(i);
}
// Returning average of chars
return sum_char / s.length();
}
// Driver code
public static void main(String[] args)
{
String s = "GeeksforGeeks";
System.out.println(averageValue(s));
}
}
# Python 3 code to find average
# of ASCII characters
# Function to find average
# of ASCII value of chars
def averageValue(s):
sum_char = 0
# loop to sum the ascii
# value of chars
for i in range(len(s)):
sum_char += ord(s[i])
# Returning average of chars
return sum_char // len(s)
# Driver code
if __name__ == "__main__":
s = "GeeksforGeeks"
print(averageValue(s))
# This code is contributed by ita_c
// C# code to find average of
// ASCII characters
using System;
class GFG
{
// Function to find average of
// ASCII value of chars
public static int averageValue(String s)
{
int sum_char = 0;
// loop to sum the ascii value of chars
for (int i = 0; i < s.Length; i++)
{
sum_char += (int)s[i];
}
// Returning average of chars
return sum_char / s.Length;
}
// Driver code
public static void Main()
{
String s = "GeeksforGeeks";
Console.Write(averageValue(s));
}
}
// This code is contributed
// by PrinciRaj1992
<script>
// Javascript code to find average of ASCII characters
// Function to find average of ASCII value of chars
function averageValue(s)
{
let sum_char = 0;
// loop to sum the ascii value of chars
for (let i = 0; i < s.length; i++) {
sum_char +=(s[i]).charCodeAt(0);
}
// Returning average of chars
return Math.floor(sum_char / s.length);
}
// Driver code
let s = "GeeksforGeeks";
document.write(averageValue(s));
// This code is contributed by avanitrachhadiya2155
</script>
<?php
// PHP code to find average
// of ASCII characters
// Function to find average
// of ASCII value of chars
function averageValue( $s)
{
$sum_char = 0;
// loop to sum the ascii
// value of chars
for ( $i = 0; $i < strlen($s); $i++)
{
$sum_char += ord($s[$i]);
}
// Returning average of chars
return (int)($sum_char / strlen($s));
}
// Driver code
$s = "GeeksforGeeks";
echo averageValue($s);
// This code is contributed
// by 29AjayKumar
?>
Output
101
complexity Analysis:
- Time Complexity: O(l), where l is the length of the string.
- Auxiliary Space: O(1)
Approach:
- Initialize a variable sum to 0 to store the sum of ASCII value of all characters.
- Traverse the string and for each character, add its ASCII value to sum.
- Calculate the average by dividing sum by the length of the string.
Below is the implementation of the above approach:
#include <bits/stdc++.h>
using namespace std;
int averageValue(string s)
{
int sum = accumulate(s.begin(), s.end(), 0, [](int acc, char c)
{ return acc + (int)c; });
return sum / s.length();
}
int main()
{
string s = "GeeksforGeeks";
cout << averageValue(s) << endl;
return 0;
}
import java.util.*;
public class Main {
public static int averageValue(String s)
{
int sum = s.chars().sum();
return sum / s.length();
}
public static void main(String[] args){
String s = "GeeksforGeeks";
System.out.println(averageValue(s));
}
}
def averageValue(s):
sum = 0
for c in s:
sum += ord(c)
return sum // len(s)
s = "GeeksforGeeks"
print(averageValue(s))
using System;
public class Program
{
// Function to calculate the average ASCII value of characters in a string
public static int AverageValue(string s)
{
int sum = 0; // Initialize a variable to store the sum of ASCII values
// Iterate through each character in the input string
foreach (char c in s)
{
// Add the ASCII value of the character to the sum
sum += (int)c;
}
// Calculate and return the average value by dividing the sum by the length of the string
return sum / s.Length;
}
public static void Main(string[] args)
{
string s = "GeeksforGeeks"; // Sample input string
int average = AverageValue(s); // Calculate the average ASCII value
// Display the result
Console.WriteLine(average);
}
}
// Function that returns the average ASCII value of characters in a string
function averageValue(s) {
let sum = s.split('').reduce((acc, c) => acc + c.charCodeAt(0), 0);
return Math.floor(sum / s.length);
}
let s = "GeeksforGeeks";
console.log(averageValue(s));
Output
101
Time Complexity: O(n), where n is the length of the string.
Auxiliary Space: O(1)