Check whether the Average Character of the String is present or not

Given a string of alphanumeric characters, the task is to check whether the average character of the string is present or not. Average character refers to the character corresponding to the ASCII value which is the floor of the average value of the ASCII values of all characters in the string.

Examples:

Input: abcdef
Output: d 
Yes
Explanation:
    string = "abcdef"
    ASCII values of a = 97, b=98, 
    c=99, d=100, e=101, f=101
    Sum of these values is 597
    Average is 99.5 ~ 100 
    Character of ASCII value 100 = d
    Hence d is present in the string.

Input: MNFGH
Output: J
No

Approach: The approach to solve this problem is very simple. It can be solved in the following steps:

  • Find the sum of ASCII values of all the characters from the given string.
  • Find the average of the ASCII value as average = (sum / numberOfCharacters)
  • Get the character of this average ASCII value. Print this character
  • Check if this character is present in the string or not. Print Yes or No accordingly.

Below is the implementation of the above approach:

Implementation:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to check if the average character
// is present in the string or not
  
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
  
// Checks if the character is present
bool check_char(char* st, char ch)
{
  
    // Get the length of string
    int l = strlen(st);
  
    // Iterate from i=0 to
    // the length of the string
    // to check if the character
    // is present in the string
    for (int i = 0; i < l; i++) {
        if (st[i] == ch)
            return true;
    }
    return false;
}
  
// Finds the average character of the string
char find_avg(char* st)
{
    int i, sm = 0;
    int l = strlen(st);
    char ch;
  
    for (i = 0; i < l; i++) {
        ch = st[i];
  
        // Calculate the sum of ASCII
        // values of each character
        sm = sm + (int)(ch);
    }
  
    // Calculate average of ascii values
    int avg = (int)(floor(sm / l));
  
    // Convert the ASCII value to character
    // and return it
    return ((char)(avg));
}
  
// Driver code
int main()
{
    char st[] = "ag23sdfa";
  
    // Get the average character
    char ch = find_avg(st);
    cout << ch << endl;
  
    // Check if the average character
    // is present in string or not
    if (check_char(st, ch) == true)
        cout << "Yes";
    else
        cout << "No";
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to check if the average character
// is present in the string or not
  
import java.math.*;
  
class GFG {
  
    // Checks if the character is present
    static boolean check_char(String st, char ch)
    {
  
        // Get the length of string
        int l = st.length();
  
        // Iterate from i=0 to
        // the length of the string
        // to check if the character
        // is present in the string
        for (int i = 0; i < l; i++) {
            if (st.charAt(i) == ch)
                return true;
        }
        return false;
    }
  
    // Finds the average character of the string
    static char find_avg(String st)
    {
        int i, sm = 0;
        int l = st.length();
        char ch;
  
        for (i = 0; i < l; i++) {
            ch = st.charAt(i);
  
            // Calculate the sum of ASCII
            // values of each character
            sm = sm + (int)(ch);
        }
  
        // Calculate the average of ASCII values
        int avg = (int)(Math.floor(sm / l));
  
        // Convert the ASCII value to character
        // and return it
        return ((char)(avg));
    }
  
    // Driver code
    public static void main(String[] args)
    {
        String st = "ag23sdfa";
  
        // Get the average character
        char ch = find_avg(st);
        System.out.println(ch);
  
        // Check if the average character
        // is present in string or not
        if (check_char(st, ch) == true)
            System.out.println("Yes");
        else
            System.out.println("No");
              
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to check if the average 
# character is present in the string or not
from math import floor
  
# Checks if the character is present
def check_char(st, ch):
      
    # Get the length of string
    l = len(st)
  
    # Iterate from i=0 to
    # the length of the string
    # to check if the character
    # is present in the string
    for i in range(l):
        if (st[i] == ch):
            return True
  
    return False
  
# Finds the average character
# of the string
def find_avg(st):
    sm = 0
    l = len(st)
  
    for i in range(l):
        ch = st[i]
  
        # Calculate the sum of ASCII
        # values of each character
        sm = sm + ord(ch)
  
    # Calculate average of ascii values
    avg = int(floor(sm / l))
  
    # Convert the ASCII value to character
    # and return it
    return (chr(avg))
  
# Driver code
if __name__ == '__main__':
    st = "ag23sdfa"
  
    # Get the average character
    ch = find_avg(st)
    print(ch)
      
    # Check if the average character
    # is present in string or not
    if (check_char(st, ch) == True):
        print("Yes")
    else:
        print("No")
  
# This code is contributed by
# Surendra_Gangwar

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to check if the average character
// is present in the string or not
using System;
  
class GFG 
{
  
    // Checks if the character is present
    static bool check_char(string st, char ch)
    {
  
        // Get the length of string
        int l = st.Length;
  
        // Iterate from i=0 to
        // the length of the string
        // to check if the character
        // is present in the string
        for (int i = 0; i < l; i++) 
        {
            if (st[i] == ch)
                return true;
        }
        return false;
    }
  
    // Finds the average character of the string
    static char find_avg(string st)
    {
        int i, sm = 0;
        int l = st.Length;
        char ch;
  
        for (i = 0; i < l; i++)
        {
            ch = st[i];
  
            // Calculate the sum of ASCII
            // values of each character
            sm = sm + (int)(ch);
        }
  
        // Calculate the average of ASCII values
        int avg = (int)(Math.Floor((double)(sm / l)));
  
        // Convert the ASCII value to character
        // and return it
        return ((char)(avg));
    }
  
    // Driver code
    public static void Main()
    {
        string st = "ag23sdfa";
  
        // Get the average character
        char ch = find_avg(st);
        Console.WriteLine(ch);
  
        // Check if the average character
        // is present in string or not
        if (check_char(st, ch) == true)
            Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
              
    }
}
  
// This code is contributed by Akanksha Rai

chevron_right


Output:

Y
No


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.





Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.