我有一个问题,如何在 C# 中删除字符串中的重复项。
示例 - 输入字符串:
acdhqodcqasaf
输出:
acdhqosaf
我真正的意思是删除甚至出现的字符。我已经写了逻辑,但我使用了嵌套 for 循环,它的效率是 O(n^2),效率不高。所以我被要求做网上查了各种方法还是没有得到答案
最佳答案
您可以使用字典来跟踪出现次数并使用 %
运算符:
string input = "acdhqodcqasaf";
var charOccurences = new Dictionary<char, int>();
int removeEvery = 2;
var outputBuilder = new StringBuilder();
foreach (char c in input)
{
charOccurences.TryGetValue(c, out int charOccurence);
charOccurence++;
charOccurences[c] = charOccurence;
if (charOccurence % removeEvery != 0)
outputBuilder.Append(c);
}
string output = outputBuilder.ToString();
关于c# - 如何在 C# .Net 中查找字符串中的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53087678/