计算连续重复的A次数和重复次数?

时间:2017-07-15 08:29:55

标签: c#

让我们说一个数组有'p'和'a'

string[] value = new string[] {"p","p",**"a","a","a","a"**,"p","p",**"a","a"**,"p"};

连续数a

repeat count --> Count of consecutive
1             -> 4
2             -> 2

我需要这种输出。使用哪种方法或格式并不重要。

注意:数组的长度不是常数。

1 个答案:

答案 0 :(得分:0)

下面是一个快速而简单的例子,说明了一种方法,你可以通过跟踪最后一个字符并将其与当前字符进行比较,并保持重复数量来迭代列表并查找重复项。

我正在使用char[]数组,因为这似乎比使用string存储单个字符更合适。

如果你想扩展逻辑只做'p'和'a'我相信你可以使用下面的代码作为一个很好的基础样本并从那里构建。

char[] values = new char[] { 'p', 'p', 'a', 'a', 'a', 'a', 'p', 'p', 'a', 'a', 'p' };

char lastChar = values.FirstOrDefault();
List<int> consecutiveCount = new List<int>();
int i = 0;
foreach (char value in values)
{
    if (value == lastChar)
    {
        i++;
        continue;
    }

    consecutiveCount.Add(i);
    lastChar = value;
    i = 1;
}

Console.WriteLine(string.Join(",", consecutiveCount));