Day39

昨天紧张一整天,今天紧张一上午,结果全程打字聊天。。。啊。。。。。
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();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值