SORT STRING BY THE FREQUENCY OF THE CHARACTER
SORT ARRAY/STRING BY FREQUENCY IN JAVA
By Sachin
Sharma
TASK : You are given a string and your task is to sort the string according to
the frequency of character and return the final string..
EXAMPLE
1 :
Input : “tree”
Output : “eetr”
Explanation : The frequency of each
character in the word is [1, 1, 2, 2] after sorting
according to the
frequency the output will be “eetr”.
EXAMPLE
2 :
Input : “hello”
Output : “lleho”
Solution
:
import java.util.Arrays;
public class SortStringByFrequency {
public static void main(String[] args) {
String s = "tree";
int f[] = new int[s.length()];
char[] st = s.toCharArray();
for (int i = 0; i < st.length; i++) {
f[i] = countFrequency(st, st[i]);
}
//
System.out.println(Arrays.toString(f));
System.out.println(sortArray(st, f));
}
public static int countFrequency(char[] a, char b) {
int count = 0;
for (char i : a){
if (i == b)
count++;
}
return count;
}
public static String sortArray(char[] a, int[] b) {
int t = 0;char c;
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0;j < a.length - i - 1;j++) {
if (b[j] < b[j + 1]) {
t = b[j];
b[j] = b[j + 1];
b[j + 1] = t;
c = a[j];
a[j] = a[j + 1];
a[j + 1] = c;
}
}
}
System.out.println(Arrays.toString(b));
return Arrays.toString(a);
}
}
Approach
:
1). First we will make the character array of the characters of the string.
2). Then count the frequency of each character in the string.
3). Taking the frequency as the main array sort the character array.
4). Then make the string of that char array.
Comments
Post a Comment