Given a string containing uppercase alphabets and integer digits (from 0 to 9), the task is to print the alphabets in the order followed by the sum of digits
belongs to collection: Interview C++ coding problems/challenges | String
All Answers
total answers (1)

C++ programming
Algorithm:
For i=0:s.length()-1 IF(s[i]>='0' && s[i]<='9') //current character is digit sum+=s[i]-'0'; //add to sum//s[i]-'0'=actual numeric value Else //it's a alphabetical character m[s[i]]++; //store character with its frequency END IF END FORFor iterator it=m.begin():m.end()-1 //inner loop to print the character as many times it occurs For i=0 : it->second-1 //it->second is the frequency of character it->first Print it->first; END FOR END FOR Print sum;Example with explanation:
Input: XY3BFA9KA2 So, After processing : Map m becomes: Char(key) Int(value) 'A' 2 'B' 1 'F' 1 'K' 1 'X' 1 'Y' 1 Sum: 14 Thus it prints: AABFKXY14Note: The map is always sorted according to its key. Thus, here we don't need to take any additional care for maintain alphabet order as the map itself is always sorted as per its key (character here).
C++ implementation:
Output
need an explanation for this answer? contact us directly to get an explanation for this answer