#include <iostream>
std::pair<char, unsigned> longestSubstring(const std::string&);
int main() {
std::pair<char, unsigned> longest_substring = longestSubstring("aaaabbbbbbcccccccnee");
std::cout << "Longest reoccuring character is: '" << longest_substring.first
<< "', at: " << longest_substring.second << " times." << std::endl;
return 0;
}
std::pair<char, unsigned> longestSubstring(const std::string &s){
unsigned max_length = 0, curr_length = 0;
char last, max = 0;
for(char c: s) {
curr_length++;
if(c != last) {
if(curr_length > max_length) {
max_length = curr_length;
max = last;
}
curr_length = 0;
}
last = c;
}
return std::make_pair(max, max_length);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnN0ZDo6cGFpcjxjaGFyLCB1bnNpZ25lZD4gbG9uZ2VzdFN1YnN0cmluZyhjb25zdCBzdGQ6OnN0cmluZyYpOwogCmludCBtYWluKCkgewogICAgc3RkOjpwYWlyPGNoYXIsIHVuc2lnbmVkPiBsb25nZXN0X3N1YnN0cmluZyA9IGxvbmdlc3RTdWJzdHJpbmcoImFhYWFiYmJiYmJjY2NjY2NjbmVlIik7CiAgICBzdGQ6OmNvdXQgPDwgIkxvbmdlc3QgcmVvY2N1cmluZyBjaGFyYWN0ZXIgaXM6ICciIDw8IGxvbmdlc3Rfc3Vic3RyaW5nLmZpcnN0CiAgICAgICAgICAgICAgPDwgIicsIGF0OiAiIDw8IGxvbmdlc3Rfc3Vic3RyaW5nLnNlY29uZCA8PCAiIHRpbWVzLiIgPDwgc3RkOjplbmRsOwogICAgcmV0dXJuIDA7Cn0KIApzdGQ6OnBhaXI8Y2hhciwgdW5zaWduZWQ+IGxvbmdlc3RTdWJzdHJpbmcoY29uc3Qgc3RkOjpzdHJpbmcgJnMpewogICAgdW5zaWduZWQgbWF4X2xlbmd0aCA9IDAsIGN1cnJfbGVuZ3RoID0gMDsKICAgIGNoYXIgbGFzdCwgbWF4ID0gMDsKICAgIGZvcihjaGFyIGM6IHMpIHsKICAgICAgICBjdXJyX2xlbmd0aCsrOwogICAgICAgIGlmKGMgIT0gbGFzdCkgewogICAgICAgICAgICBpZihjdXJyX2xlbmd0aCA+IG1heF9sZW5ndGgpIHsKICAgICAgICAgICAgICAgIG1heF9sZW5ndGggPSBjdXJyX2xlbmd0aDsKICAgICAgICAgICAgICAgIG1heCA9IGxhc3Q7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY3Vycl9sZW5ndGggPSAwOwogICAgICAgIH0KICAgICAgICBsYXN0ID0gYzsKICAgIH0KICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihtYXgsIG1heF9sZW5ndGgpOwp9