Читать две строки из stdin
.
Выведите, Yes
если одна строка является повернутой версией другой.
В противном случае выводNo
Testcases
вход
CodeGolf GolfCode
Выход
Yes
вход
stackexchange changestackex
Выход
Yes
вход
stackexchange changestack
Выход
No
вход
Hello World
Выход
No
Stackexchange Stackchangeex
вернется?No
. Вращение - это сдвиг, как у этих светодиодных прокручиваемых знаковОтветы:
APL (28)
Принимает входные данные в две строки.
Объяснение:
A←⍞
: прочитать строку ввода и сохранить ее в A⌽∘A¨⍳⍴A
: Поверните A на x, для каждого x в [1..length A]. Дает список, т.е.estT stTe tTes Test
(⊂⍞)∊
: прочитайте еще одну строку ввода и посмотрите, есть ли она в этом списке.1+
: добавить один к этому, давая 1, если строки не были повернуты и 2, если они были'No' 'Yes'[
...]
: выберите первый или второй элемент из списка в'No' 'Yes'
зависимости от того, были ли строки повернуты или нет.источник
Руби
4941Изменить: заменяет gets.split на $ *
источник
$*
это argv, когда вопрос, указанный,stdin
хотя.Python, 70 байт
Тестирование ...
источник
stdin
, чего нет в этом решении.print ['No
Python 70 символов
Спасибо gnibbler за трюк с ломтиками.
источник
nn nfn
, вы получитеYes
, что неправильно.<>
на,-
поскольку это также приведет к тому,0
что они будут одинаковой длины.J, 47
источник
Согласно спецификации (одинаковые длины строк):
Perl,
4243 символаЕсли разрешены строки разных размеров, решение будет таким:
Perl, 47 символов
БВ
источник
nn nfn
, вы получитеYes
, что неправильно.Гольфскрипт, 31
Сначала проверяйте длину, поэтому она должна работать как положено.
источник
:)
и=)
+1 для очень счастливого кодаJ, 57
Образец использования:
источник
Windows PowerShell, 76
источник
JavaScript, 51
У JavaScript нет канонического хоста, поэтому этот ответ записывается как функция двух аргументов. Счет возрастает до 60, если мы запрещаем функции JS 1.7 (замыкания выражений).
В оболочке SpiderMonkey это будет (для оценки 71):
источник
=>
функцию обозначения;)Python,
6663Еще одно решение за 69 символов
источник
print'YNeos'[a!=(2*a).replace(b,"")::2]
J, 84
источник
JavaScript (120 символов)
Выход:
источник
Ruby, 58 (62) символов
Это решение предполагает, что ввод содержит только буквенно-цифровые символы (фактически все, что не имеет специального значения внутри регулярного выражения, в порядке).
Решение, которое не имеет этого ограничения, на 4 символа длиннее
источник
Python, 71
источник
nn nfn
, вы получитеYes
, что неправильно.PHP, 61
источник
Руби, 41
источник
puts gets =~ /^(.+)(.*) \2\1$/ ?:Yes: :No
- увеличивает его до 41 символа.Haskell (
9896 символов)источник
Q (
5043 символа)источник
Scala 78
Обидно за проверку размера, без него счетчик падает до 54
источник
"""val b=readLine split " " print(b(0).sorted==b(1).sorted)""".length
дает 56Баш 56
источник
GolfScript, 25 байт
Как это устроено
источник
CJam, 21 байт
Попробуйте онлайн!
источник
0
/1
вместоNo
/Yes
.Луа 115 символов
источник
С программа - 146
источник
PHP, 82 символа
источник
Perl, 123 символа
источник
Руби,
3037Версия, которая печатает «true» и «false» вместо «yes» и «no»:
Оба они работают со строками разной длины (в отличие от старого)
источник
Python 2, 86 символов
источник
Perl (просто быстрое решение)
Исправление к решению резиновых сапог, будучи новым пользователем, я не могу комментировать, поэтому я просто отправлю новый ответ.
Поскольку в упомянутом методе используется регулярное выражение, созданное из пользовательского ввода, можно выполнить небольшое внедрение регулярного выражения следующим образом:
Исправление заключается в использовании \ Q (также известного как quotemeta):
Сам код может быть дополнительно сокращен с помощью «сказать», но это оставлено в качестве упражнения для читателя :)
источник
print+(qw/yes no/)[
вас, вероятно, можно написать,print qw(yes no)[
что на два символа короче.