Не понимаю почему не проходят тесты задачи?

119
08 июня 2019, 12:30

Count the number of Duplicates
Write a function that will return the count of distinct case-insensitive alphabetic characters and numeric digits that occur more than once in the input string. The input string can be assumed to contain only alphabets (both uppercase and lowercase) and numeric digits.

Вот задача

Вот моё решение:

function duplicateCount(text){ 
  if(text.length!=0){ 
    var count=0, j,myreg; 
    text=text.toLowerCase(); 
    for(let i=0;i<text.length;i++){ 
      myreg= new RegExp(text[i],'gi'); 
      if(text.match(myreg).length>=2){ 
        count++; 
        text = text.replace(myreg,''); 
      } 
    } 
    return count; 
  }else{ 
    return 0; 
  } 
}

Я понял задачу так: если встречаться символ более одного раза увеличиваем счётчик. В результате вывести счётчик.

Answer 1

Так, для коллекции:

function duplicateCount(text){
   let t = text.toLowerCase();
   let s = new Set();
   let dup = new Set();
   for (let c of t) {
     if (s.has(c)) dup.add(c);
     s.add(c);
  }
   return dup.size;
}
Answer 2
  ...
  text = text.replace(myreg,'');
  i--;
}
...

Тест:

Test.assertEquals(duplicateCount("abbFcccFde"), 3);

Без i--; сначала пропускается первая F при удалении b, а потом - вторая при удалении c.

function duplicateCount(text, expected){ 
  var result = 0; 
 
  var counts = {}; 
  var textL = text.toLowerCase(); 
  for(var i = 0; i < textL.length; i++) { 
    var currentCount = (counts[textL[i]] || 0) + 1; 
    counts[textL[i]] = currentCount; 
    if (currentCount == 2) 
      result++; 
  } 
 
  console.log(`result = ${result}, expected = ${expected}`,  
    (result == expected)? "passed" : "failed", text); 
  return result; 
} 
 
duplicateCount("", 0); 
duplicateCount("abcde", 0); 
duplicateCount("aabbcde", 2); 
duplicateCount("aabBcde", 2,"should ignore case"); 
duplicateCount("Indivisibility", 1); 
duplicateCount("Indivisibilities", 2, "characters may not be adjacent"); 
 
duplicateCount('abcabc', 3); 
duplicateCount("abbFcccFde", 3); 
duplicateCount('bbb', 1);

READ ALSO
mysql workbench no connection

mysql workbench no connection

Почему то перестал загружаться mysqlЕще вчера все было нормально

126
Учтека памяти из-за gif-ки

Учтека памяти из-за gif-ки

Это второй мой вопрос за сегодняОказалось (экспериментально подтвердилось), что утечка произодит из-за анимации

110
Баг с прокруткой

Баг с прокруткой

Суть проблемы в том что если перейти на любую другую вкладку в браузере а вкладку со скриптом не закрывать то когда возвращаешься на вкладку...

128
Изображение на всю высоту в правом блоке

Изображение на всю высоту в правом блоке

Помогите пожалуйста приклеить изображение в правый блок на всю высоту экрана, с нулевыми отступами, как на изображенииВозможно без использование...

162