Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var str = "abbbaaaaaaabbbaabaaabbb";
console.log( str.match( /a{3}|b{3}/g ).length ); // 6// Сначала итеративно заменяем патерны из 5-ти букв. Итерации необходимы, т.к. после первого раунда замен могут появиться новые 5-буквенные патерны, например (с пробелом для ясности) aaaaa aaa => aabaa aaa — в конце вылез новый 5-буквенный патерн. Поэтому выполняем "подходы к снаряду", пока новые такие патерны не перестанут появляться, т.е. до тех пор, пока строка, получающаяся после замены (temp), не будет совпадать со строкой до замены (str):
while ( !( str === ( temp = str.replace( /aaaaa/g, 'aabaa' ) ) ) ) str = temp;
// С патернами из 3-х букв уже просто. Тут итерации не нужны, тупо реплэйсим:
str = str.replace( /aaa/g, 'aba' );
// + Аналогично с буквой bOfftopic: отличная кпдв, прям дышит Microsoft ;)
'uuuuxaaaaxuuu'.replace(/((.)\1)\1+/g, '$1$2');function solution(arr) {
let sums = {};
let result = -1;
arr.forEach((num) => {
const sum = sumDigits(num);
if (sums[sum]) {
const pair_num = sums[sum];
sums[sum] = Math.max(pair_num, num);
result = Math.max(result, num + pair_num);
} else {
sums[sum] = num;
}
});
return result;
}
Решение нескольких задач от Microsoft на примере JavaScript