Найбільша і найменша можлива кількість


16

Завдання

Враховуючи масив негативних чисел, виведіть найбільше і найменше можливе число, яке можна сформувати, приєднавшись до них.

Правила

Введення, вихід може бути в будь-якому зручному форматі.

Масив може мати не більше 1 десяткового числа.

Приклади

input:[22,33,44,55.55,33]
output:4433332255.55,55.5522333344

input:[34,900,3,11,9]
output:990034311,113349009

input:[99.93,9,3,39]
output:939399.93,99.933399

input:[45.45,45,45,45]
output:45454545.45,45.45454545

input:[12,21,34,43,45.1]
output:4334211245.1,45.112213443

Це код-гольф, тому виграє найкоротший код.


1
Не був би перший вихід: 4422333355.55, 55.5544333322? Вони відповідно менше і менше.
ouflak

@ouflak, ви повинні вивести найбільші та найменші.
Ведант Кандой

1
Не забудьте побачити зараз. Поплутався з десятковою комою.
ouflak

Буде [[55.55,22,33,33,44],[44,33,33,22,55.55]]мати прийнятний формат виведення?
Кудлатий

1
Будь-який спосіб добре @Jordan
Vedant Kandoi

Відповіді:



3

05AB1E , 11 байт

œJΣ'.¡ï}Á2£

Спробуйте в Інтернеті! або як тестовий набір

Пояснення

 œ             # get permutations of input
  J            # join each
   Σ    }      # sort by
    '.¡        # splitting into [before decimal, after decimal]
       ï       # and converting each to int
         Á     # rotate the result right
          2£   # and take the first 2 values

Шкода, що у нас немає cast to float. Я пам’ятаю, що у Legacy був такий, але я просто подивився на це, і, мабуть, це було stringified cast to floatдуже корисно, оскільки ви хочете, щоб поплавці замість струн
сортували

@KevinCruijssen: Так. У нас було , is_numberале, на жаль, немає to_number.
Емінья

3

JavaScript (ES6), 68 66 байт

a=>[1,-1].map(n=>a.sort((a,b)=>[a%1||a]+b<[b%1||b]+a?n:-n).join``)

Спробуйте в Інтернеті!

Як?

Ми використовуємо наступний тест для порівняння двох значень у вхідному масиві:

[a % 1 || a] + b < [b % 1 || b] + a

x % 1 || xххх

Вираз [x % 1 || x] + yпримушує вищезазначений результат до рядка і з'єднує його з іншим значенням.

Якщо в списку є десяткове число, його завжди слід вважати найменшим значенням. Застосовуючи наше перетворення, десяткове число перетворюється на рядок, починаючи з "0.", який лексикографічно упорядковується перед чим-небудь іншим.

Приклади:

  a |   b | [a%1||a]+b | [b%1||b]+a
----+-----+------------+------------
  4 |   5 | "45"       | "54"
 10 |  11 | "1011"     | "1110"
  8 |  80 | "880"      | "808"
  7 | 9.5 | "79.5"     | "0.57"

3

Japt, 14 11 байт

á m¬ñn é v2

Спробуй це

1 байт збережено завдяки Луїсу , будь ласка і +1його рішення.

á               :Permutations
  m             :Map
   ¬            :  Join
    ñ           :Sort by
     n          :  Converting each to a number
       é        :Rotate right
         v2     :Remove & return the first 2 elements

Гаразд, це краще !! чорт !! це éбуло приховано весь цей час !!
Luis felipe De jesus Munoz

3

Japt , 14 11 10 байт

á m¬ñn gJò

Спробуйте в Інтернеті!


Хороший. У мене був á ®¬nÃnперший рядок - пинаю себе, що я не думаю про твій шлях.
Кудлатий

12 байт , використовуючи -hпрапор.
Кудлатий

11 байт , використовуючи -gпрапор. Також працює з íзамість ï.
Кудлатий

@Shaggy Відмінно! Спасибі!!
Luis felipe De jesus Munoz

Данг! Схоже, я скоро здався; дуже красиво зроблено.
Кудлатий

3

Желе , 6 байт

Œ!VṢ.ị

Спробуйте в Інтернеті!

Пояснення:

Œ!VṢ.ị Arguments: x
Œ!     Permutations of x
  V    Concatenate the representations of each permutation's elements and evaluate the result as Jelly code
   Ṣ   Sort
    .ị Get element at index 0.5, i.e. elements at indices 0 (last) and 1 (first)

Я ніколи не програмую в Jelly, але .ịце досить класний спосіб отримати як перший, так і останній пункт списку. Гарна відповідь! +1 від мене.
Кевін Круїссен

1
@KevinCruijssen Він фактично отримує останній і перший пункт. : P
Ерік Покірний

Я також ніколи не програмував в Jelly, але я розгублений, як це .ịпрацює. Якщо я правильно читаю документи, я думаю, що отримує елемент y на підлозі (x) та ceil (x), і .є 0.5. Чи це не означає, що він отримає елементи y в індексах 0 і 1?
Cowabunghole

Чи індексовано на основі Jelly 1? Це пояснило б таку поведінку, але я нічого не бачу в цьому в документах.
Cowabunghole

1
@Cowabunghole Так, желе є 1-індексованим.
Ерік Аутгольфер


2

Pyth, 13 12 байт

hM_BSvsM.p`M

Виводи у формі [smallest, largest]. Спробуйте це в Інтернеті тут або перевірити всі тестові випадки тут .

hM_BSvsM.p`MQ   Implicit: Q=eval(input())
                Trailing Q inferred
          `MQ   Stringify all elements of Q
        .p      Generate all permutations of the above
      sM        Concatenate each permutation
     v          Evaluate each as a number
    S           Sort them
  _B            Pair the sorted list with its reverse
hM              Take the first element of each, implicit print

Редагувати: збережений байт шляхом вилучення строфікації з функції відображення. Попередня версія: hM_BSmvs`Md.p



1

Лушпиння , 10 байт

§,▼▲morṁsP

Спробуйте в Інтернеті або перевірте все!

Пояснення

§,▼▲m(rṁs)P  -- example input: [2,3,1.1]
          P  -- permutations: [[2,3,1.1],[3,2,1.1],[1.1,3,2],[3,1.1,2],[1.1,2,3],[2,1.1,3]]
    m(   )   -- map the following
                (example with [1.1,2,3])
       ṁs    -- | show each and join: "1.123"
      r      -- | read: 1.123
             -- : [231.1,321.1,1.132,31.12,1.123,21.13]
§,           -- fork and join as tuple
  ▼          -- | min: 1.123
   ▲         -- | max: 321.1
             -- : (1.123,321.1)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.