leetcode 791. Custom Sort String C#利用哈希表实现

本文介绍了一种使用哈希表解决LeetCode新题的方法,通过将输入字符串中的字符映射到哈希表中对应的StringBuilder对象,实现了对字符串的定制排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LeetCode的新题,很容易想到双重嵌套循环,这是另一种利用哈希表的解法

        public string CustomSortString(string S,string T)
        {
            Dictionary<char, StringBuilder> DS = new Dictionary<char, StringBuilder>();

            StringBuilder SB = new StringBuilder();
            foreach(char c in S)
            {
                DS.Add(c, new StringBuilder());
            }
            DS.Add('0', new StringBuilder());
            foreach(char c in T)
            {
                if (DS.ContainsKey(c))
                    DS[c] =  DS[c].Append(c);
                else
                    DS['0'] = DS['0'].Append(c);
            }

            foreach (StringBuilder sb in DS.Values)
            {
                SB.Append(sb.ToString());
            }
            return SB.ToString();
}

比双重嵌套的写法慢了一点点,担心关系到大量字符串操作,所以用了stringbuilder,似乎是多虑了?如果输入字符足够长,大概能快一些

可惜C#不支持一键多值的哈希链表,不然就能省下实例化stringbuilder的时间了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值