/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String setofletters
= "aaakkcccccczz"; /* 15 */ int output = runLongestIndex(setofletters);
System.
out.
println("Longest run that first appeared in index : " + output
); }
public static int runLongestIndex
(String setofletters
) { int maxCount = 0;
int maxIndex = 0;
// loops each character in the string
for (int i = 0; i < setofletters.length() - 1; ) {
// new char sequence starts here
char currChar = setofletters.charAt(i);
int count = 1;
int index = i;
while ( (index < setofletters.length() - 1) &&
(currChar == setofletters.charAt(++index)) ) {
count++;
}
if (count > maxCount) {
maxIndex = i;
maxCount = count;
}
i = index;
}
return maxIndex;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyBzZXRvZmxldHRlcnMgPSAiYWFha2tjY2NjY2N6eiI7IC8qIDE1ICovCiAgICAgICAgaW50IG91dHB1dCA9IHJ1bkxvbmdlc3RJbmRleChzZXRvZmxldHRlcnMpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTG9uZ2VzdCBydW4gdGhhdCBmaXJzdCBhcHBlYXJlZCBpbiBpbmRleCA6ICIgKyBvdXRwdXQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IHJ1bkxvbmdlc3RJbmRleChTdHJpbmcgc2V0b2ZsZXR0ZXJzKSB7CiAgICAgIGludCBtYXhDb3VudCA9IDA7CiAgICAgIGludCBtYXhJbmRleCA9IDA7CiAgICAKICAgICAgLy8gbG9vcHMgZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZwogICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNldG9mbGV0dGVycy5sZW5ndGgoKSAtIDE7ICkgewogICAgICAgIC8vIG5ldyBjaGFyIHNlcXVlbmNlIHN0YXJ0cyBoZXJlCiAgICAgICAgY2hhciBjdXJyQ2hhciA9IHNldG9mbGV0dGVycy5jaGFyQXQoaSk7CiAgICAgICAgaW50IGNvdW50ID0gMTsKICAgICAgICBpbnQgaW5kZXggPSBpOwogICAgICAgIHdoaWxlICggKGluZGV4IDwgc2V0b2ZsZXR0ZXJzLmxlbmd0aCgpIC0gMSkgJiYKICAgICAgICAgICAgICAgIChjdXJyQ2hhciA9PSBzZXRvZmxldHRlcnMuY2hhckF0KCsraW5kZXgpKSApIHsKICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0gCiAgICAgICAgICAKICAgICAgICBpZiAoY291bnQgPiBtYXhDb3VudCkgewogICAgICAgICAgIG1heEluZGV4ID0gaTsKICAgICAgICAgICBtYXhDb3VudCA9IGNvdW50OwogICAgICAgIH0KICAgICAgICBpID0gaW5kZXg7CiAgICAgIH0KICAgICAgcmV0dXJuIG1heEluZGV4OwogICAgfQp9