Занимательные задачи JavaScript. Часть 33
Дан текст:
let text = 'The cat chased the dog and the dog chased the cat';
Найдите в тексте все биграммы (пары идущих подряд слов), которые встречаются более одного раза. Выведите их в порядке убывания частоты.
Дан массив чисел:
let arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
Найдите в нем самую длинную
подпоследовательность, которая
состоит из чисел, идущих
подряд (например, 1, 2, 3).
Порядок элементов в массиве
не важен.
Дана строка:
let txt = 'abcabcabcabc';
Проверьте, является ли она
периодической. Если да - найдите
минимальный период и выведите
его. В данном примере период - 'abc'.
Дан двухмерный массив:
let intervals = [[1, 4], [2, 5], [7, 9], [8, 10], [12, 15], [3, 6]];
Объедините все пересекающиеся интервалы и выведите результат в виде массива непересекающихся интервалов:
[[1, 6], [7, 10], [12, 15]]
Дана строка:
let txt = 'Listen, silent! Enlist.';
Проверьте, являются ли все слова в этой строке анаграммами друг друга. Игнорируйте регистр и знаки препинания.
Дан массив чисел:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
Разбейте его на минимальное количество групп так, чтобы сумма чисел в каждой группе была одинаковой.
Дан текст:
let text = 'the quick brown fox jumps over the lazy dog';
Найдите в тексте все слова,
которые состоят из букв,
идущих в алфавитном порядке
(например, 'brown' - нет,
а 'fox' - да, 'f' < 'o' < 'x').
Дан массив чисел:
let arr = [4, 5, 2, 25, 7, 8, 1, 9, 3, 6];
Найдите в нем все числа,
которые являются степенями
двойки, и замените их
на их логарифм по основанию 2.
Дана строка:
let txt = 'aaa bbb ccc ddd eee fff ggg';
Замените каждое слово на число,
равное количеству букв в нем,
умноженному на его позицию
в строке (нумерация с 1).
Дан массив чисел:
let arr = [15, 8, 23, 4, 42, 16, 7, 31, 9, 56, 12, 3];
Найдите в нем все числа, которые делятся на сумму своих цифр без остатка (числа Харшада). Выведите их в порядке возрастания.