Расчёт количества цепочек
dmaytry79
Дата: 16.05.2017 23:33:56
Доброго времени суток!
Есть последовательность: '1000111001110011011001111' и т.д.
Нужно вычислить количество разных цепочек, т.е.
кол-во цепочек из 1-го элемента - 1,
кол-во цепочек из 2-х элементов - 2,
кол-во цепочек из 3-х элемента - 2,
кол-во цепочек из 4-х элемента - 1.
Имеется в виду непрерывная цепь единичек.
Может, я туплю, но ума не приложу, как это подсчитать?
Помогите, пожалуйста!
Akina
Дата: 16.05.2017 23:45:01
Прямое сканирование, коллекция результатов (ключ - количество элементов) и счётчик.
dmaytry79
Дата: 16.05.2017 23:58:25
Akina, хотелось бы увидеть код на любом ЯВУ
Изопропил
Дата: 17.05.2017 00:01:21
dmaytry79 |
---|
хотелось бы увидеть код на любом ЯВУ |
напишите и увидите.
dmaytry79
Дата: 17.05.2017 00:03:13
Проблема в том, что я не знаю, как определить кол-во элементов в конкретной цепочке!
Dima T
Дата: 17.05.2017 07:04:33
В цикле. Читай по одному элементу, считай и пиши результат в массив.
zudver
Дата: 17.05.2017 07:22:45
dmaytry79 |
---|
Доброго времени суток!
Есть последовательность: '1000111001110011011001111' и т.д. Нужно вычислить количество разных цепочек, т.е.
кол-во цепочек из 1-го элемента - 1, кол-во цепочек из 2-х элементов - 2, кол-во цепочек из 3-х элемента - 2, кол-во цепочек из 4-х элемента - 1.
Имеется в виду непрерывная цепь единичек.
Может, я туплю, но ума не приложу, как это подсчитать?
Помогите, пожалуйста! |
String aa = "1000111001110011011001111";
String[] splited = aa.split("0+");
Map<String, Long> result = Arrays.stream(splited).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
result.forEach((k,v) -> System.out.println(k + " -> " +v));
Alibek B.
Дата: 17.05.2017 10:23:52
Однострочник на Perl:
perl -e 'print join ",", map {length($_)} split /0+/, "1000111001110011011001111";'
dmaytry79
Дата: 17.05.2017 10:53:04
<?php
$sequence = '1000111001110011011001111';
preg_match_all("/1+/", $sequence, $matches);
foreach ($matches[0] as $match) $result[strlen($match)]++;
echo '<pre>'; print_r($result);
dmaytry79
Дата: 17.05.2017 10:54:51
Всем огромное за участие и за ответы! На perl очень интересно, но я с ним не очень знаком. Нужно было именно на PHP.