Leer dos cadenas de stdin
.
Salida Yes
si una cadena es una versión rotada de la otra.
De lo contrario salidaNo
Casos de prueba
Entrada
CodeGolf GolfCode
Salida
Yes
Entrada
stackexchange changestackex
Salida
Yes
Entrada
stackexchange changestack
Salida
No
Entrada
Hello World
Salida
No
Stackexchange Stackchangeex
?No
. La rotación es un cambio, como los LED de desplazamiento signosRespuestas:
APL (28)
Toma entrada en dos líneas.
Explicación:
A←⍞
: lee una línea de entrada y la almacena en A⌽∘A¨⍳⍴A
: Gire A por x, para cada x en [1..length A]. Da una lista, es decirestT stTe tTes Test
(⊂⍞)∊
: lea otra línea de entrada y vea si está en esta lista.1+
: agregue uno a esto, dando 1 si las cadenas no se giraron y 2 si lo fueran'No' 'Yes'[
...]
: Seleccione el primer o segundo elemento de la lista'No' 'Yes'
dependiendo de si las cadenas se giraron o no.fuente
Rubí
4941Editar: reemplazado gets.split por $ *
fuente
$*
es argv cuando la pregunta especificadastdin
sin embargo.Python, 70 bytes
Prueba ...
fuente
stdin
, de las cuales esta solución no.print ['No
Personajes de Python 70
Gracias a gnibbler por el truco del corte.
fuente
nn nfn
, obtieneYes
, lo cual está mal.<>
por-
ya que eso también dará como resultado0
si son de igual longitud.J, 47
fuente
Según la especificación (mismas longitudes de cadena):
Perl,
4243 caracteresSi se permiten cadenas de diferentes tamaños, la solución sería:
Perl, 47 caracteres
rbo
fuente
nn nfn
, obtieneYes
, lo cual está mal.Golfscript, 31
Esta longitud de verificación primero, por lo que debería funcionar como se esperaba.
fuente
:)
y=)
+1 para un código muy felizJ, 57
Uso de la muestra:
fuente
Windows PowerShell, 76
fuente
JavaScript, 51
JavaScript no tiene un host canónico, por lo que esta respuesta se escribe en función de dos argumentos. El puntaje sube a 60 si no permitimos las características de JS 1.7 (cierres de expresiones).
En el shell SpiderMonkey esto sería (para un puntaje de 71):
fuente
=>
notación de función;)Python,
6663Otra solución en 69 char
fuente
print'YNeos'[a!=(2*a).replace(b,"")::2]
J 84
fuente
JavaScript (120 caracteres)
Salida:
fuente
Ruby, 58 (62) personajes
Esta solución asume que la entrada contiene solo caracteres alfanuméricos (en realidad, todo lo que no tiene un significado especial dentro de una expresión regular está bien).
Una solución que no tiene esta restricción es 4 caracteres más larga
fuente
Python, 71
fuente
nn nfn
, obtieneYes
, lo cual está mal.PHP, 61
fuente
Rubí, 41
fuente
puts gets =~ /^(.+)(.*) \2\1$/ ?:Yes: :No
- sube a 41 caracteres.Haskell (
9896 caracteres)fuente
Q (
5043 caracteres)fuente
Scala 78
Es una pena el control de tamaño, sin él el recuento cae a 54
fuente
"""val b=readLine split " " print(b(0).sorted==b(1).sorted)""".length
rinde 56bash 56
fuente
GolfScript, 25 bytes
Cómo funciona
fuente
CJam, 21 bytes
Pruébalo en línea!
fuente
0
/ en1
lugar deNo
/Yes
.Lua 115 caracteres
fuente
Programa C - 146
fuente
PHP, 82 caracteres
fuente
perl, 123 caracteres
fuente
Rubí,
3037Una versión que imprime "verdadero" y "falso" en lugar de "sí" y "no":
Ambos funcionan con cadenas de diferente longitud (a diferencia del anterior)
fuente
Python 2, 86 caracteres
fuente
Perl (solo una solución rápida)
Una solución a la solución de las botas de goma, siendo un nuevo usuario que soy, no puedo comentar aún, así que simplemente publicaré una nueva respuesta.
Como el método mencionado utiliza una expresión regular construida a partir de la entrada del usuario, es posible realizar una pequeña inyección de expresiones regulares, de la siguiente manera:
La solución es usar \ Q (conocido también como quotemeta):
El código en sí podría acortarse aún más usando 'decir', pero esto se deja como un ejercicio para el lector :)
fuente
print+(qw/yes no/)[
usted, probablemente pueda escribirprint qw(yes no)[
cuál es dos caracteres más cortos.