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

05 Apr, 2019
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++
Java
Python3
C#
// 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 presentbool 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 stringchar 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 codeint 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;}
// 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");                  }}
# Python 3 program to check if the average # character is present in the string or notfrom math import floor  # Checks if the character is presentdef 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 stringdef 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 codeif __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
// C# program to check if the average character// is present in the string or notusing 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
Y
No

SURENDRA_GANGWAR
Akanksha_Rai
School Programming
Strings
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Constructors in Java
Exceptions in Java
Ternary Operator in Python
Inline Functions in C++
Destructors in C++
Write a program to reverse an array or string
Longest Common Subsequence | DP-4
Write a program to print all permutations of a given string
Check for Balanced Brackets in an expression (well-formedness) using Stack
KMP Algorithm for Pattern Searching