Sort an input string according to the given order string. There might be characters in input string that are not present in the order string and vice-versa. The characters of input string that are not present in the order string should come at the end of the output string in any order. Write code...
Example: Sort("abdcdfs","dacg");
output: ddacfbs
string fun(string &s, string &order)
{
int count[256];
memset(count, -1, sizeof(count));
int m = s.size();
int n = order.size();
for (int i = 0; i < n; i++)
{
count[order[i]] = 0;
}
int right = m-1;
int left = 0;
while (left < right)
{
if (count[s[left]] >= 0)
{
count[s[left]]++;
left++;
}
else
{
swap(s[left], s[right]);
right--;
}
}
int pos = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < count[order[i]]; j++)
{
s[pos] = order[i];
pos++;
}
}
return s;
}