2013-12-04 3 views
0

Двойные буквы: письмо, которое появляется последовательно дважды. (Например: «Google», «приятель программирования»)Как подсчитать количество двойных букв в строке?

Google содержит 1 двойную букву. Программист-приятель содержит две двойные буквы в строке.

В любом случае, вот мой код

int doubleLetters = 0; 
for (int i = 0; i < characters.Length - 1; i++) 
{ 
    if (characters[i] == characters[i + 1]) 
    { 
     doubleLetters++; 
    } 
} 

Проблема здесь, если строка была прописана «Gooogle» (3 Выходов), было бы вернуть мне счетчик 2 вместо 1. В принципе, было бы вернуть меня сколько условных букв - 1 в результате.

Как сделать так, чтобы он подсчитал правильное количество двойных букв? Поэтому, если строка «looooool», она должна дать 3. Однако мой код считает это как 5 вместо.

Я пытаюсь найти код, который может исправить это.

+2

Итак, должен ли «Goooogle» вернуть 2? В этом случае вы можете просто сделать курсор вперед (i ++) после матча. – nolegs

ответ

7
if (characters[i] == characters[i + 1]) 
    { 
     doubleLetters++; 
     i++; 
    } 
+2

Из-за условия цикла вам не нужно ничего проверять перед 'i ++'. – MarcinJuraszek

+0

Ах спасибо, хорошо поймать! – ghostbust555

+0

Я собираюсь проверить это и надеюсь, что это сработает. EDIT: Большое спасибо. – puretppc

Смежные вопросы