文字列内の連続する重複文字の最大数を返すことができるコードの更新バージョンが必要です。たとえば、入力として文字列がある場合、 5 c があるため"aabbbcccccd"
、結果は 5 になります。
私のコードの問題は、それが4を返すことです。
入力 " abccbbb
" がある場合、文字列には 3 つの連続した重複文字 (c) が含まれているため、結果は 4 ではなく 3 になることに注意してください。
private int countRepeatedChars(String password)
{
int maxNumberofRepeatedChars = 0;
int counterOfSameChar = 0;
boolean foundMoreThanOneChar = false;
char ch, nextCh;
for (int i = 0; i < password.length()-1; i++)
{
ch = password.charAt(i);
nextCh = password.charAt(i + 1);
if ((int) ch == ((int) nextCh))
{
counterOfSameChar++;
} else
{
maxNumberofRepeatedChars = Math.max(counterOfSameChar, maxNumberofRepeatedChars);
counterOfSameChar = 0;
foundMoreThanOneChar = true;
}
}
if (foundMoreThanOneChar)
return maxNumberofRepeatedChars;
else
return counterOfSameChar;
}