order로 주어지는 문자는 제시된 순서를 유지하도록 s를 sorting하기. order에 존재하지 않는 문자는 어디 위치해도 상관없음.
Input: order = "cba", s = "abcd"
Output: "cbad"
https://leetcode.com/problems/custom-sort-string/
s의 문자빈도수를 table[26] 에 저장. order에 존재하는 문자를 먼저 배열에 저장. 그 뒤남은 문자를 배열에 저장.
char * customSortString(char * order, char * s){
int table[26] = {0};
int ssize = strlen(s);
int osize = strlen(order);
char *ret = malloc((ssize + 1) * sizeof(char));
int retcnt = 0;
for (int i = 0; i < ssize; i++)
table[s[i] - 'a']++;
for (int i = 0; i < osize; i++) {
for (int j = 0; j < table[order[i] - 'a']; j++)
ret[retcnt++] = order[i];
table[order[i] - 'a'] = 0;
}
for (int i = 0; i < 26; i++)
for (int j = 0; j < table[i]; j++)
ret[retcnt++] = i + 'a';
ret[retcnt] = '\0';
return ret;
}