codewars помощь
я практикуюсь на codewars помогите до решить задачу
https://www.codewars.com/kata/5245a9138ca049e9a10007b8/forks/javascript
https://codepen.io/nikitos2004tester/pen/OJMJJJe
Функция f1 подсчитывает количество разделов, повторяющих одно и то же слово (без учета регистра). Вхождение двух или более одинаковых слов, следующих друг за другом, считается одним.
function f1(text){
let counter=null
let up1=text.toUpperCase()
let uparray=up1.split(' ')
console.log(uparray)
let array=new Set(uparray)
console.log(array)
counter=uparray.length-array.size
}
f1("cat cat dog dog cat cat")
Ответы (1 шт):
Автор решения: Виталий Шебаниц
→ Ссылка
Так решил это я:
// Тестовый массив
testArray = [
"dog cat",
"dog DOG cat",
"apple dog cat",
"pineapple apple dog cat",
"apple apple dog cat",
"apple dog apple dog cat",
"dog dog DOG dog dog dog",
"dog dog dog dog cat cat",
"cat cat dog dog cat cat"
];
// Запускаю тест
testArray.forEach(testString => console.log(countAdjacentPairs(testString)))
// искомый метод
function countAdjacentPairs(searchString) {
// счетчик
var count = 0;
// прошлое слово
var curStr = "";
// итерировали ли мы уже это слово?
var coincidences = false;
// если строка пуста возвращаем 0
if (searchString.length === 0) return 0;
// разбиваем строку по проблам ( пробелов может быть от 1 и больше)
searchString.toLowerCase().split(new RegExp(' +', 'g')).forEach(str => {
// Если прошлое слово совпало с текущим и мы его еще не итерировали, то увеличиваем счетчик
if (str === curStr && !coincidences){
count++;
coincidences = true;
}
// Если слово не совпадает но итератор включен - то убираем итератор
if (str !== curStr && coincidences){
coincidences = false;
}
curStr = str;
});
// возвращаю счетчик
return count;
}
Несколько решений с codewar:
