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++
// 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; } |
Java
// 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" ); } } |
Python3
# 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 |
C#
// 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 |
Y No
Recommended Posts:
- Find the character in first string that is present at minimum index in second string
- Find repeated character present first in a string
- Python | Check if a Substring is Present in a Given String
- Check if frequency of character in one string is a factor or multiple of frequency of same character in other string
- Check if both halves of the string have at least one different character
- Check if a two character string can be made using given words
- Python | Check order of character in string using OrderedDict( )
- Check if the frequency of any character is more than half the length of the string
- Check if max occurring character of one string appears same no. of times in other
- Check if the given string of words can be formed from words present in the dictionary
- Check input character is alphabet, digit or special character
- Find the longest sub-string which is prefix, suffix and also present inside the string
- Find the longest sub-string which is prefix, suffix and also present inside the string | Set 2
- Find a string such that every character is lexicographically greater than its immediate next character
- Modify the string such that every character gets replaced with the next character in the keyboard
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.