C# 计算一个';它连续地重复,重复了多少次?
假设一个数组有'p'和'a'C# 计算一个';它连续地重复,重复了多少次?,c#,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 我需要这种输出。使用哪种方法或格式并不重要 注意:数组的长度不是恒定的。这里有一个快速简单的例子,通过跟踪最后一
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
我需要这种输出。使用哪种方法或格式并不重要
注意:数组的长度不是恒定的。这里有一个快速简单的例子,通过跟踪最后一个字符并将其与当前字符进行比较,并保持重复计数,可以迭代列表并查找重复的字符 我使用的是
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));
char[]values=新字符[]{'p','p','a','a','a','a','p','p','a','a','p'};
char lastChar=values.FirstOrDefault();
List CONCEDUTIVECOUNT=新列表();
int i=0;
foreach(值中的字符值)
{
if(值==lastChar)
{
i++;
继续;
}
连续计数添加(i);
lastChar=值;
i=1;
}
Console.WriteLine(string.Join(“,”连续计数));
您尝试过什么吗?你在实现这一点时遇到了什么困难?我是一个新手,我知道如何计算重复值的总数