
30.01.2018, 18:36
|
 |
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
если я правильно понял, надо "схлопнуть" одинаковые символы, и указать их количество, если более одного.
var str = 'AAAADEEESSQQQQQQ';
var result = str.replace(/(.)\1+/g, function(m, c) { return c + m.length; });
alert(result);
Последний раз редактировалось Alexandroppolus, 30.01.2018 в 18:39.
|
|

30.01.2018, 20:58
|
 |
Профессор
|
|
Регистрация: 07.03.2011
Сообщений: 1,138
|
|
Так это уже тысячу раз обсуждалось. Сжатие по хафману хорошо работает. с построением дерева и расчета весов на узел. Можно еже добавить семейство алгоритмов LZMA и получим самый настоящий zip.
Сообщение от Alexandroppolus
|
если я правильно понял, надо "схлопнуть" одинаковые символы,
|
Это называется алгоритм RLE
|
|

30.01.2018, 21:20
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
А теперь с такой строкой, пожалуйста:
'AAAADEEESSQQQQ1111122QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ'
естесно с возможностью распаковать 
__________________
29375, 35
|
|

30.01.2018, 21:42
|
 |
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Aetae,
var str = 'AAAADEEESSQQQQ1111122QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ';
var result = str.replace(/(.)\1+/g, function(m, c) {return c + '('+m.length+')'});
alert(result);
|
|

30.01.2018, 22:56
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
j0hnik, вооот, уже разделители пошли, а на средне "шумном" - это приведёт не к сжатию а к увеличению.)
А ещё надо учитывать, что в строке могуть быть скобочки.)
Тащем архиватор - это вам не хухры-мухры.
Впрочем собес я получается тоже завалил: слишком много думаю. Есть тз, должен быть результат. Думать не надо. Любые доработки - за отдельные деньги.)
__________________
29375, 35
Последний раз редактировалось Aetae, 30.01.2018 в 23:09.
|
|

30.01.2018, 23:08
|
 |
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
Aetae,
Это же тестовое задание, тут цель эксперимента проверить способность испытуемого, а не придумать новый алгоритм сжатия который будет лучше существующих.
|
|

30.01.2018, 23:33
|
 |
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
именно. Алгоритм сжатия - это было бы задание дома сделать и прислать ответ. А если "на 15 мин в сраном блокнотике" - как раз простое схлопывание повторяющихся символов в строке только из букв. Ну и конечно, простое очевидное решение с регексом делается за минуту, хотя они, скорее всего, ожидали с циклом что-то..
|
|

31.01.2018, 02:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Alexandroppolus
|
хотя они, скорее всего, ожидали с циклом что-то.
|
Можно быть уверенным в этом, очевидное с regex не дает представления о возможностях мышления тестируемого. Хотя может быть и прокатило бы, и был бы зачет, но тогда впоследствии были бы проблемы.
Последний раз редактировалось laimas, 31.01.2018 в 12:02.
|
|

31.01.2018, 08:35
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,242
|
|
Сообщение от laimas
|
Завтра Яшка всем тут отказы напишет.
|
Пойдем в управдомы... 
|
|

31.01.2018, 12:22
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от ksa
|
Пойдем в управдомы...
|
Теплые места как всегда заняты, только дворником. )
|
|
|
|