gpt4 book ai didi

c# - 测试字符串中的重复字符

转载 作者:太空狗 更新时间:2023-10-29 18:00:30 24 4
gpt4 key购买 nike

我正在处理一些字符串,我有一个场景需要确定一个字符串(通常是小于 10 个字符的小字符串)是否包含重复字符。

`ABCDE`  // does not contain repeats 
`AABCD` // does contain repeats, ie A is repeated

我可以遍历 string.ToCharArray() 并针对 char[] 中的每个其他字符测试每个字符,但我觉得我遗漏了一些明显的东西......也许我只需要咖啡。谁能帮忙?

编辑:

字符串会被排序,所以顺序并不重要所以ABCDA => AABCD

重复的频率也很重要,所以我需要知道重复是成对还是三重等。

最佳答案

如果字符串已排序,您可以依次记住每个字符并检查以确保下一个字符永远不会与最后一个字符相同。

除此之外,对于 10 个字符以下的字符串,仅针对所有其余字符测试每个字符可能与大多数其他事情一样快或更快。正如另一位评论者所建议的那样,位向量可能会更快(如果您有一小部分合法字符,则会有所帮助。)

奖励:这里有一个巧妙的 LINQ 解决方案来实现 Jon 的功能:

int longestRun =
s.Select((c, i) => s.Substring(i).TakeWhile(x => x == c).Count()).Max();

所以,好吧,它不是很快!你有问题吗?!

:-)

关于c# - 测试字符串中的重复字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com