В отличие от большинства языков, Python оценивает, a<b<c
как это было бы сделано в математике, фактически сравнивая три числа, а не сравнивая логическое значение a<b
с c
. Правильный способ написать это в C (и многих других) будет a<b && b<c
.
В этой задаче ваша задача состоит в том, чтобы расширить такие цепочки сравнения произвольной длины от Python / интуитивного представления до того, как оно будет написано на других языках.
Характеристики
- Ваша программа будет обрабатывать операторы:
==, !=, <, >, <=, >=
. - На входе будут цепочки сравнения, использующие только целые числа.
- Не беспокойтесь о правильности любых сравнений на этом пути, это чисто синтаксическая задача.
- Ввод не будет иметь пробелов, чтобы предотвратить ответы, которые упрощают синтаксический анализ путем разделения на пробелы.
- Тем не менее, ваш вывод может иметь один пробел, окружающий либо только
&&
«или», либо оба оператора сравнения и&&
«или», либо ни того, ни другого, но быть согласованным.
Тестовые случаи
Input Output
---------------------------------------------------------------
3<4<5 3<4 && 4<5
3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9
3<5==6<19 3<5 && 5==6 && 6<19
10>=5<7!=20 10>=5 && 5<7 && 7!=20
15==15==15==15==15 15==15 && 15==15 && 15==15 && 15==15
Это Код-гольфтак что кратчайший код в байтах побеждает!
code-golf
parsing
conversion
syntax
code-golf
sequence
primes
code-challenge
geometry
optimization
code-golf
graph-theory
code-golf
number-theory
primes
integer
code-golf
source-layout
cops-and-robbers
code-golf
source-layout
cops-and-robbers
code-golf
sequence
primes
integer
code-golf
math
number-theory
primes
rational-numbers
code-golf
math
sequence
number-theory
primes
code-golf
string
code-golf
math
combinatorics
permutations
restricted-complexity
code-golf
array-manipulation
code-golf
number
sequence
code-golf
number
sequence
code-golf
binary-matrix
code-golf
math
tips
javascript
algorithm
code-golf
string
code-golf
number
sequence
code-golf
math
arithmetic
parsing
code-golf
number
sequence
primes
code-golf
string
ascii-art
geometry
integer
code-golf
geometry
code-golf
number
array-manipulation
code-golf
math
geometry
code-golf
number
sequence
arithmetic
integer
code-golf
string
kolmogorov-complexity
code-golf
number
code-golf
number
chess
code-golf
sequence
decision-problem
subsequence
code-golf
math
number
primes
code-golf
primes
permutations
code-golf
integer
probability-theory
statistics
code-golf
string
code-golf
sequence
decision-problem
parsing
board-game
code-golf
binary
graph-theory
code-golf
board-game
classification
tic-tac-toe
code-golf
ascii-art
polyglot
code-golf
date
code-golf
geometry
Maltysen
источник
источник
&&
?Ответы:
Сетчатка ,
332217 байт-5 байт благодаря @MartinEnder
Попробуйте онлайн!
источник
1>-2
что не работает, чтобы ограничить с обоих концов одновременно ...Шелуха ,
1614 байтПечатает пробел вокруг каждого оператора.
Попробуйте онлайн!
Объяснение:
источник
w
вместо;
более прямого подхода к соединению строк с пробеламиRetina ,
424722 байтаМассовая игра в гольф благодаря Кевину Круйссену
Попробуйте онлайн!
источник
(==|!=|<=?|>=?)
может быть\D+
(?<!^|\d)
может быть(?<=\D)
. Также в(?=\d+)
этом нет необходимости, за оператором всегда будет следовать операнд, после чего вы можете опустить+
после\D
. Кроме того,$&
вместо этого$1$2
можно сохранить еще один байт, захватив его позади и посмотрев вперед, вместо того, чтобы захватывать вперед и оглядываться назад.(\D(\d+))(?=\D)
на строке 1 и$1&&$2
на строке два достаточно ( 22 байта ). Попробуй это здесь.V , 37 байт
Попробуйте онлайн!
HexDump:
источник
Clojure, 88 байт
Обновление:
subs
вместоclojure.string/join
.источник
J ,
5946 байтПопробуйте онлайн!
Как это раньше работало
Мы ищем границы оператора. Строки «обезглавлены» и «свернуты» превращаются в нули и строки, где 0 - это цифры, а затем клонируются вместе. Добавить ноль, чтобы соответствовать длине.
источник
Python 2 ,
60595857 байтПопробуйте онлайн!
источник
re.sub(r'\D(\d+)(?=\D)',r'\g<0>&&\1',s)
сохраняет 1 байт.Древесный уголь, 29 байт
Две немного разные формулировки одного и того же базового алгоритма. Входная строка повторяется символом. Когда цифры найдены, они собираются в переменную. Когда граница между числом и оператором найдена, выводится дополнительный символ «&&» плюс переменная, а переменная очищается. Переменная изначально инициализируется пробелом, чтобы первая граница не вызывала лишние «&&».
источник
Желе , 16 байт
Попробуйте онлайн!
Объяснение:
источник
Java 8, 46 байт
Объяснение:
Попробуй это здесь.
Regex объяснение:
Пошаговый пример замены:
источник
Perl 5 , 47 + 1 (-p) = 48 байт
Попробуйте онлайн!
источник
Рубин , 37 байт
Попробуйте онлайн!
источник
JavaScript (SpiderMonkey) , 43 байта
Попробуйте онлайн!
источник