我正在尝试找出字符串中最长的模式。例如,我有 string='aabbbcc',让它返回最长的模式 'bbb'。请帮忙。谢谢
问问题
230 次
2 回答
0
您的 .NET 可以使用以下内容轻松完成此操作,
string s = "aabbbcc";
var countByObject = s.GroupBy(q => q).OrderByDescending(q1 => q1.Count())
.Select(q2 => new { Letter = q2.Key, CountOfObjects = q2.Count() })
.ToList();
...其中countByObject
是包含 aLetter
和对应的匿名对象的列表Count
。实施的:
s.GroupBy(q => q).OrderByDescending(q1 => q1.Count())
.Select(q2 => new { Letter = q2.Key, CountOfObjects = q2.Count() })
.ToList().ForEach(q3=>{
Console.WriteLine(String.Format("{0} {1}",q3.Letter, q3.CountOfObjects));
});
...打印出来:
b 3
a 2
c 2
于 2012-05-02T17:18:17.847 回答
0
您没有说语言...但是您可以使用for将字符串的每个字母与最后一个字母进行比较。每次相等,你可以给一个变量加1...最后,你只需要得到最大的变量......(你可以只使用两个变量)
于 2012-05-02T17:19:17.983 回答