Sort a String
time: O(n)
space: O(n + 26), alphabet characters are 26, n is the length of string
class Solution
{
String sort(String s)
{
// code here
int abc[] = new int[27];
// System.out.println(abc.toString());
for (int i = 0; i < s.length(); i++) {
int c = s.charAt(i) - 96;
abc[c] += 1;
}
for (int i = 1; i < abc.length; i++) {
abc[i] = abc[i - 1] + abc[i];
// System.out.println(i + " " + abc[i]);
}
char answer[] = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
int num = s.charAt(i) - 96;
int index = abc[num];
answer[index - 1] = (char) (num + 96);
abc[num]--;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < answer.length; i++) {
sb.append(answer[i]);
}
return sb.toString();
}
}
Last updated