Как записать последовательность? Всем привет
Подскажите плз, как оформить такую последовательность математически (а лучше даже в виде алгоритма или на псевдокоде) - чтобы можно было в цикле оформить
массивА = [а,а,а,а,б,б,б,б,б,б,в,в,в,в,в,в,г,г,г,г]
массивБ = [[a,a,a,a], [б,б,б][б,б,б], [в,в] [в,в] [в,в] [г] [г] [г] [г]]
нужно из массиваА получить массивБ
уже второй день бьюсь, не могу толком сообразить
спасибо

21 Авг 2019 в 06:09
158 +1
0
Ответы
1

Для преобразования массива массиваА в массив массиваБ можно использовать следующий псевдокод:

Создать новый пустой массив массиваБИнициализировать переменную текущий_элемент как первый элемент массиваАИнициализировать переменную счетчик как 1Перейти к следующему элементу массиваАЕсли текущий элемент равен предыдущему элементу, увеличить счетчик на 1Иначе добавить [текущий элемент * счетчик] в массивБ, сбросить счетчик в 1Если достигнут конец массива массиваА, добавить [текущий элемент * счетчик] в массивБВернуть массив массиваБ

Пример на JavaScript:

function toArrayOfArrays(arr) {
let result = [];
let currentElement = arr[0];
let count = 1;
for (let i = 1; i < arr.length; i++) {
if (arr[i] === currentElement) {
count++;
} else {
result.push(Array(count).fill(currentElement));
count = 1;
currentElement = arr[i];
}
}
result.push(Array(count).fill(currentElement));
return result;
}
let массивА = ['а','а','а','а','б','б','б','б','б','б','в','в','в','в','в','в','г','г','г','г'];
let массивБ = toArrayOfArrays(массивА);
console.log(массивБ);

Этот код преобразует массивА в массивБ, как описано в вашем вопросе.

20 Апр 2024 в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир