昨天紧张一整天,今天紧张一上午,结果全程打字聊天。。。啊。。。。。
anyway,明天还有一个面试,不过明天的就是那种小作坊公司了,应该不会考口语,所以今天还是多做几道题吧。
结果因为紧张过头,导致脑袋晕沉沉的,最终还是没有做几道题。。。
这毛病什么时候能改掉。。。
===================郁闷的分割线===========================
字符串问题:
已知一个字符串S,一个字符串T,S中不存在重复字母,求将T中的字母重新排序,使其满足S中字母的排列规则,比如S中c在d前,则T中的所有c都要在所有d的前面。(S中最多26个字母,T中不超过200个字母,S中没有的字母的顺序随意)
思路,将T中的字母出现的个数记录在字母表中,然后遍历S,输出S中有的字母,然后遍历T输出剩下的字母
string CustomSortString(string S, string T)
{
StringBuilder result = new StringBuilder();
int[] alphaTable = new int[26];
for(int i = 0; i < T.Length; i++)
{
alphaTable[(int)(T[i] - 97)]++;
}
for(int i = 0; i < S.Length; i++)
{
for(int j = 0; j < alphaTable[(int)(S[i] - 97)]; j++)
{
result.Append(S[i]);
}
alphaTable[(int)(S[i] - 97)] = 0; //为了避免重复计数
}
for(int i = 0; i < T.Length; i++)
{
for(int j = 0; j < alphaTable[(int)(T[i] - 97)]; j++)
{
result.Append(T[i]);
}
alphaTable[(int)(T[i] - 97)] = 0;
}
return result.ToString();
}