c# - 将字符字典转换为字符串字典
问题描述
我得到了一份带有以下声明的作业:
编写一个程序,计算字符串中除空格('')之外的所有字符。按以下格式打印所有匹配项:
{char} -> {occurrences}
我用 char 编写了程序,但是当我在他们的作业系统中提交它时,我一直收到超时错误。这是我的代码:
SortedDictionary<char, int> text = new SortedDictionary<char, int>();
char[] characters = Console.ReadLine()
.Where(x => !Char.IsWhiteSpace(x))
.ToArray();
foreach (var character in characters)
{
if (text.ContainsKey(character))
{
text[character]++;
}
else
{
text.Add(character, 1);
}
}
foreach (var character in text.OrderByDescending(x => x.Value))
{
Console.WriteLine($"{character.Key} -> {character.Value}");
}
我无法理解如何将它作为字符串读取并仍然得到结果。这是一个例子:
"text text text" = t -> 6 e -> 3 x -> 3
解决方案
我不确定您的期望,但是如果您使用字符串而不是 char 数组可以稍微提高性能:
var text = new SortedDictionary<char, int>();
var inputText = Console.ReadLine();
foreach (var character in inputText)
{
if (character == ' ')
{
continue;
}
if (text.ContainsKey(character))
{
text[character]++;
}
else
{
text.Add(character, 1);
}
}
推荐阅读
- c# - 在周一至周日上午 7:20 至晚上 8:30 之间每 x 分钟触发一次的 Cron 表达式
- graphics - 3d 引擎如何决定多边形在模型中的位置?
- python - 尝试使用数据库查询时,Django 通道 Async Websocket 抛出错误
- python - 如何在 Python/Opencv 中模拟按键?
- html - 响应式图像顶部的响应式文本叠加
- javascript - 无法在嵌套组件上设置道具
- eclipse - AWS Toolkit for Eclipse 2.0 IAM 角色支持?
- java - 对 blob 使用对象存储
- azure - Azure AD 上的外部组织访问最佳方法
- sql - 创建一个“部分”窗口函数来更新 SQL Server 中的数据