27 lines
709 B
C#
27 lines
709 B
C#
|
public class Solution {
|
||
|
public int MaximumLength(string s) {
|
||
|
var counter = new Dictionary<(char, int), int>();
|
||
|
|
||
|
for (var l = 0; l < s.Length; ++l) {
|
||
|
var c = s[l];
|
||
|
|
||
|
var substringLength = 0;
|
||
|
for (var r = l; r < s.Length && c == s[r]; ++r) {
|
||
|
++substringLength;
|
||
|
|
||
|
var key = (c, substringLength);
|
||
|
counter[key] = 1 + (counter.ContainsKey(key) ? counter[key] : 0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return counter.Select(pair => {
|
||
|
if (pair.Value < 3) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var (c, length) = pair.Key;
|
||
|
return (int?)length;
|
||
|
}).Max() ?? -1;
|
||
|
}
|
||
|
}
|