You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对字母数字混合字符串排序以得到a1b0c1格式结果

错误原因

你当前的实现是直接对整个字符串的单个字符逐一排序,会将所有字符按ASCII码值从小到大排列,最终得到数字在前、字母在后的结果,不符合「以2个字符组成的片段为排序单位」的需求。

正确实现方案

你需要先将字符串拆分为每2个字符为一个单位的片段,再按片段的首字符(字母)排序,最后拼接排序后的片段即可,C#实现代码如下:

// 假设输入的原始拼接字符串为answer
var sortedResult = string.Join("", 
    Enumerable.Range(0, answer.Length / 2)
    .Select(i => answer.Substring(i * 2, 2))
    .OrderBy(segment => segment[0])
);

如果你的原始输入本身就是存储了各个片段的集合,不需要拆分步骤,直接对集合排序即可:

// 假设原始片段集合为List<string> segments = new List<string>{"a1","c1","b0"};
var sortedResult = string.Join("", segments.OrderBy(s => s[0]));

运行上述代码即可得到预期输出a1b0c1。

内容的提问来源于stack exchange,提问作者Rose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:15:03