vector<int> findFrequency(string S) {
vector<int>v(26,0);
for(char ch:S){
v[ch-'a']++;
}
return v;
}
Problem of the day
You are given a string 'S' of length 'N', you need to find the frequency of each of the characters from ‘a’ to ‘z’ in the given string.
Example :
Given 'S' : abcdg
Then output will be : 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The first line of the input contains an integer 'T' denoting the number of test cases.
The first and the only line of each test case contains the string 'S'.
Output Format :
The only line of output of each test case should contain 26 space-separated integers, where the 'i'th integer represents the frequency of the 'i'th character.
Note :
You don’t have to print anything, it has already been taken care of. Just implement the given function.
1 <= T <= 10^2
1 <= Length of the given string <= 10^4
It is guaranteed that all the characters in the string are lower case english alphabets.
Time Limit : 1 sec
1
abaaba
4 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The frequency of ‘a’ is 4 and the frequency of ‘b’ is 2 and rest all characters frequency is 0.
2
bbcccaaaa
z
4 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
For the first input, the frequency of ‘a’ is 4, ‘b’ is 2 and ‘c’ is 3.
For the second input, the frequency of ‘z’ is 1.
Try to traverse the each character.
Since there are just 26 lower case characters, we can use an array of size 26 to store the result.
Here is the algorithm :
O(N), where ‘N’ is the length of input string ‘S’.
We traverse whole string to count characters. Hence, the overall time complexity will be O(N).
O(1)
We use no extra space. Hence, the overall space complexity will be O(1).
Interview problems
3 line of Code By NK
vector<int> findFrequency(string S) {
vector<int>v(26,0);
for(char ch:S){
v[ch-'a']++;
}
return v;
}
Interview problems
Python code
size=[0]*26
for i in S:
size[ord(i)-ord('a')] +=1
return size
Interview problems
Python code
def findFrequency(s):
mydict = {}
for num in range(97 , (97+26)):
mydict[chr(num)] = 0
for ch in s:
mydict[ch] += 1
result = []
for val in mydict.values():
result.append(val)
return result
My code is running correct in other compiler but here Im getting error
Interview problems
3line code
vector<int> findFrequency(string S) {
vector<int>freq(26,0);
for(auto i :S)freq[i-'a']++;
return freq;
}
Interview problems
Easy Java Code
import java.util.* ;
import java.io.*;
public class Solution {
public static int[] findFrequency(String S) {
// Write your code here.
int ans[]=new int[26];
for(char ch:S.toCharArray()){
ans[ch-'a']++;
}
return ans;
}
}
Interview problems
Count Frequency
def findFrequency(S):
# Write your code here.
frequency = [0]*26;
for i in S:
frequency[ord(i)-ord('a')] += 1;
return frequency
Interview problems
find freq with c++ very easy solution using hashing
#include <bits/stdc++.h>
vector<int> findFrequency(string S) {
vector<int>ans(26,0);
for(int i=0;i<S.size();i++){
ans[S[i]-'a']++;
}
return ans;
}
Interview problems
Count Frequency -C++
#include <bits/stdc++.h>
vector<int> findFrequency(string S) {
// Write your code here.
vector<int>ans(26,0);
int j=0;
for(int i=0;i<S.size();i++)
{
j=S[i]-'a';
ans[j]++;
j=0;
}
return ans;
}
Interview problems
easy c++ approach
#include <bits/stdc++.h>
vector<int> findFrequency(string S) {
// Write your code here.
int n=S.length();
int frq[256]={0};
vector<int> ans;
for(int i=0; i<n; i++){
if(S[i]==' '){
continue;
}
else{
frq[S[i]]++;
}
}
for(int i=97; i<123; i++){
ans.push_back(frq[i]);
}
return ans;
}