Thursday 22 October 2015

Count Total Number Of Times Each Alphabet Appears In The String

The common technical interview question in java is to count the occurrence of  a specific word in the string but what if interviewer ask to count the total number of times each alphabet appears in the string . That the question, whose logic you need to think at that point of time and sadly there is no  built in  java method to give you the direct answer by passing the input string .

Read Also :    Count number of  words in the String with Example

So in order to be prepared for such type of questions we have shared the program code below .

Input string  :       "Alive is awesome"

Output           :      A=1,l=1,i=2,v=1,e=3, =2,s=2,a=1,w=1,o=1,m=1
                                                                                

Note :  The result is case sensitive , so if the alphabet is in uppercase and lowercase are treated as different
             for example , Please see above  the alphabet which is texted in Red

Read Also :    Find first Non-Repeated Character in the String


    Pseudo code/Logic  for the Program 


   *  We store the input string in an character array (below z) .(We want to create a character array z without                                                                                                any duplicate alphabet )
   *  We start traversing the string in array z[i].
           for i=0 to i<z.length
  

               Store the character at index i that is z[i] in temporary variable ch
                               for  z[i+1] to z.length   
                                           if  ch is equals to the any element of the rest of the array characters           
                                               then   move the  cursor  to next index and reduce the length of the string by 1
                                               set s[k]=s[k+1] // deleting the alphabet which is already in array z 
                                               set j=i     

    *  Create a new array of integers to store the count of  total number of appearances of alphabets   in the           string     (below t)

    *  Compare every element of string s with   the every element of character array z
                      if both are equal then
                             increase count by 1
         Add the final count value to the array t (which is used to store the final count of  total number of                                                                                occurrences of the alphabet in the string )

    *  Print  the count of the alphabet          

Demo :


count total number of times each alphabet appears in the string java program

























Code :



public class  AlphabetFrequencyString {
    
  
    static int i,j,k,c=0,w;
    
    static char m;                      //we can only define static for variables and fns not for arrays
    
    public static void main(String[] args) {
        System.out.println("Input string is : ");
        System.out.println("Alive is awesome");
        System.out.println("");
        System.out.println("");
        System.out.println("Output :");
        frequencycount("Alive is awesome");
    }
    
    
    static void frequencycount(String s)
    
    {
        
        char[] z=new char[s.length()];
        for(w=0;w<s.length();w++)
        z[w]=s.charAt(w);
        for(i=0;i<w;i++)
        {
            char ch=z[i];
            for(j=i+1;j<w;j++)
            {
                if(z[j]==ch)
                {
                    for(k=j;k<(w-1);k++)
                    z[k]=z[k+1];
                    w--;
                    j=i;
                }
            }
        }
        
        int[] t=new int[w];
        for(i=0;i<w;i++)
        {
            for(j=0,c=0;j<s.length();j++)
            {
                if(z[i]==s.charAt(j))
                c++;
            }
            t[i]=c ;
            System.out.print(z[i]+"="+c+",");
        }
    }
    
}

No comments:

Post a Comment