C#不使用LINQ实现统计字符串中重复字符的出现次数
C# 无LINQ实现字符串重复字符频次统计
需求说明
给定一个C#字符串,统计其中所有出现次数大于1的重复字符各自的出现频次,要求解决方案不得使用LINQ。
示例
输入字符串:
string str = "abcdzefazz";
预期输出:
Character a has 2 occurrences. Character z has 3 occurrences.
实现代码
using System; using System.Collections.Generic; class CharCountDemo { static void Main() { string inputStr = "abcdzefazz"; Dictionary<char, int> charCounter = new Dictionary<char, int>(); // 遍历字符串统计所有字符出现次数 foreach (char c in inputStr) { if (charCounter.ContainsKey(c)) { charCounter[c]++; } else { charCounter.Add(c, 1); } } // 输出出现次数大于1的重复字符 foreach (var countItem in charCounter) { if (countItem.Value > 1) { Console.WriteLine($"Character {countItem.Key} has {countItem.Value} occurrences."); } } } }
补充说明
- 单次遍历字符串完成统计,时间复杂度为O(n),n为输入字符串长度
- 全程未调用LINQ相关API,符合要求
- 默认大小写敏感统计,如有忽略大小写的需求,可在遍历字符时统一转成大写/小写后再存入字典
内容的提问来源于stack exchange,提问作者Boris
相关产品推荐
相关产品推荐

