我试图找出字符串中最长的模式。例如,我有string ='aabbbcc',让它返回'bbb',这是最长的模式。请帮忙。感谢
答案 0 :(得分:0)
您可以使用以下内容轻松完成此操作,
string s = "aabbbcc";
var countByObject = s.GroupBy(q => q).OrderByDescending(q1 => q1.Count())
.Select(q2 => new { Letter = q2.Key, CountOfObjects = q2.Count() })
.ToList();
...其中countByObject
是包含Letter
和对应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
答案 1 :(得分:0)
您没有说出语言...但您可以使用 来比较字符串的每个字母和最后一个字母。每次相等时,你可以将1添加到一个变量......最后,你只需要得到最大的变量......(你可以只使用两个变量)