-2

我正在尝试找出字符串中最长的模式。例如,我有 string='aabbbcc',让它返回最长的模式 'bbb'。请帮忙。谢谢

4

2 回答 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 回答