Пятничная задачка. Алгоритм преобразования ряда чисел в строку. #733235


#0 by apl1978
Доброе утро, коллеги! Предлагаю задачку, чтобы немного отвлечься. Есть ряд чисел например (1,2,3,4,5,9,12,13,14). Его надо вывести в строку вида (1-5, 9, 12-14). Ряд может принимать любые заранее неизвестные значения. Может быть весь последовательным (1,2,3,4,5) - тогда выводим (1-5), а может вообще не содержать последовательных (1,3,5) тогда в этом виде и выводим. Одно точно известно - ряд всегда "отсортирован" от минимального до максимального. Это что-то явно математическое, но никак не нащупаю нить. Простым перебором вроде бы не обойтись. Может кто-нибудь знает алгоритм на любом языке, я под 1С 8 перепишу. Всем доброй пятницы!
#1 by Asmody
Эта "интересная задачка" сплывает раз в два-три месяца. На ИС её даже запросами решение лежит.
#2 by Crush
"Простым перебором вроде бы не обойтись." Больше походит на пятничный троллинг:)
#3 by Cube
Пф... Сначала РазложитьСтрокуВМассивПодстрок эта функция есть в любой типовой, а потом простой цикл...
#4 by PR
Не взлетит ветка. Задачка плевая.
#5 by spectre1978
+1
#6 by spectre1978
самое сложное - разложить в массив подстрок - уже написано во всех типовых...
#7 by Crush
for(i==1;n-1;1)
#8 by b_ru
>>Простым перебором вроде бы не обойтись. У решения простым перебором сложность O(n) и требования к памяти o. Куда уж лучше то.
#9 by PR
Эээ... СтрЗаменить(Стр, ",", Символы.ПС).
#10 by User_Agronom
А в лоб перебором слабо? Всё в один цикл вместится.
#11 by User_Agronom
Это слишком просто. Решение не тянет на пятничную задачу.
#12 by Cube
Если заказчик башляет за мизерный прирост производительности, то любой каприз, как оговориться :)
#13 by patria0muerte
Здесь вот:
#14 by PR
Тут и задачка не тянет на пятничную.
#15 by PR
Заказчик в данном случае никакого прироста не заметит, только прирост денег в кармане программиста за счет кармана клиента.
#16 by 1Сергей
не нашел
#17 by patria0muerte
2ой пункт
#18 by 1Сергей
ну и хрен с ним
#19 by 1Сергей
в лоб:
#20 by kosts
Точно такую же задачу неделю назад решал, только с датами.
#21 by 1Сергей
циклом решил?
#22 by kosts
Хотел рекурсией, но решил, что в рабочей базе так не очень хорошо будет. В итоге решил запросом, но потом циклом все же.
#23 by kosts
Т.е. решил и запросом и циклом, но оставил цикл, что бы базу не дергать.
#24 by apl1978
Всем большое спасибо! Тему можно закрыть. Сделал перебором по массиву со сравнением. Доброй пятницы и хороших выходных :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С