PolarBearGG
@PolarBearGG
I know that I know nothing

В чем проблема, код проходит 4/6 теста?

задачка - https://www.codewars.com/kata/counting-duplicates/...
мой код проходит только 4 теста, в чем проблема?
function duplicateCount(text){
  var lowerCaseText = text.toLowerCase();
  var repeats = 0;
for (i=0; i<lowerCaseText.length; i++) {
  for (b=0; b<lowerCaseText.length; b++) {
if (lowerCaseText[b] === lowerCaseText[b+1]) {
  repeats = repeats + 1;
  lowerCaseText = lowerCaseText.replace(lowerCaseText[b],"")
break;
  }}}
return repeats;
  }
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
@timokins
if (lowerCaseText[b] === lowerCaseText[b+1]) {
Вы проверяете текущий символ со следующим,
а повторы могут быть не только соседями,
поэтому на словах: Indivisibility и Indivisibilities, функция отрабатывает неверно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
function duplicateCount(text){

    text = text.toLowerCase();
    var len = text.length
        , chars = Object.create(null)
        , char
        , count = 0
    ;
    
    for(i=0; i<len; i++){
        char = text[i];
        if(chars[char] == undefined){
            chars[char] = false;
        } else {
            chars[char] = true;
        }
    }
    
    for(c in chars){
        if(chars[c]){
            count++;
        }
    }
    
    return count;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы