LeetCode/cs/find-longest-special-substring-that-occurs-thrice-i.cs

27 lines
709 B
C#
Raw Normal View History

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;
}
}