gpt4 book ai didi

c# - 用字符串中的单个字符修剪重复字符

转载 作者:太空狗 更新时间:2023-10-29 22:07:06 25 4
gpt4 key购买 nike

这是一道面试题——你将如何有效地去除单个字符字符串中的重复字符。

例子:假设这是输入字符串

"reeeturrrnneedd"

输出应该是:

"returned"

我通过使用拆分字符串并循环遍历 char 数组来解释它,但面试官不相信答案说这不是有效的方法。

private void test()
{
string s = "reeeturrrnneeddryyf";
StringBuilder sb = new StringBuilder();
char pRvChar = default(char);
foreach (var item in s.ToCharArray())
{
if (pRvChar == item)
{
continue;
}
pRvChar = item;
sb.Append(pRvChar);
}

MessageBox.Show(sb.ToString());
}

然后我想到 Linq 反对并使用 distinct 但它会给出不正确的输出,因为它删除了所有重复的字符并且输出将被“retund”

有人能告诉我更有效的方法吗?

最佳答案

这是一个使用正则表达式的解决方案:

Regex regex = new Regex( "(.)\\1+" );
string result = regex.Replace( s,"$1" );

我不确定,就执行时间而言,这是否比您的“for”循环更有效,但就开发人员工作而言,它更有效。并且易于阅读,至少对于熟悉正则表达式的人来说是这样。

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

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