如何找出字符串中最长的模式

时间:2012-05-02 17:10:56

标签: algorithm

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

2 个答案:

答案 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添加到一个变量......最后,你只需要得到最大的变量......(你可以只使用两个变量)