Java 8, Maven, Git
git clone https://github.com/qrkot/ports.git && cd ports && mvn clean package
import me.qrkot.port.*;
Port port = new Port(new String[] {"1,2,3", "4-7", "8, 9", "0"});
int[] a = port.getSequence()
int[][] b = port.getCombinations();
Любопытное тестовое задание на Java: генерация сочетаний элементов из нескольких множеств, в итоге рекурсивно реализованная.
Класс Ports
принимает строковый массив целых чисел, разделенных запятыми и дефисами (обозначающими диапазон).
Например: ["1, 2, 3","4-7", "8, 9", "0"]
Внутри класса строковый массив преобразуется в численный 2D с раскрытием диапазонов: [[1, 2, 3], [4, 5, 6, 7], [8, 9], [0]]
а) Ports.getSequence
возвращает развернутый массив целых: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
b) Ports.getCombinations
возвращает набор всех комбинаций из 2D массива: [[1, 4, 8, 0], [1, 4, 9, 0], [1, 5, 8, 0] ... [3, 7, 9, 0]]
В целях тотальной стандартизации всё сделано из массивов примитивных целых.
Не предназначено для промышленного использования.