Tantangannya di sini adalah untuk mengambil string dan mengeluarkan semua rotasinya, dengan berulang kali memindahkan karakter pertama ke akhir, sekali per karakter dalam string, berakhir dengan string asli:
john -> ohnj, hnjo, njoh, john
Anda juga dapat berputar ke arah lain, memindahkan karakter dari ujung:
john -> njoh, hnjo, ohnj, john
Anda masih harus mengeluarkan satu rotasi per huruf bahkan jika kata aslinya tercapai sebelum itu:
heehee -> eeheeh, eheehe, heehee, eeheeh, eheehe, heehee
Array karakter diperbolehkan, selama hasilnya berfungsi seperti yang ditunjukkan di atas.
Jawaban terpendek menang!
heehee
kembali ke urutan semula dalam siklus yang lebih sedikit dari panjangnya, apakah kita berhenti di situ? Saya berharap ini akan membuat perbedaan besar untuk banyak jawaban.Jawaban:
Jelly , 2 byte
Tautan monadik yang menerima daftar karakter yang menghasilkan daftar daftar karakter
Cobalah online! (footer cetakan cantik dengan memanggil tautan dan bergabung dengan karakter baris baru)
sumber
Haskell, 27 byte
Cobalah online!
sumber
APL (Dyalog Unicode) , 6 byte SBCS
Cobalah online!
⍳
indeks∘
dari≢
penghitungan⌽¨
setiap rotate (ke kiri)⊂
seluruh stringsumber
Python 2 , 38 byte
Cobalah online!
sumber
JavaScript (ES6),
3732 byteMengembalikan array string.
Cobalah online!
sumber
Japt,
53 byteMengambil input sebagai array karakter, menghasilkan array array karakter
Coba di sini
sumber
05AB1E , 3 byte
Cobalah online!
sumber
brainfuck , 59 byte
Cobalah online!
Output setiap string dipisahkan oleh null bytes.
Penjelasan:
sumber
MATL ,
65 byte1 byte disimpan berkat @luis!
Cobalah di MATL Online !
Penjelasan :
sumber
Bahasa Wolfram (Mathematica) ,
3526 byteCobalah online!
Mengambil daftar karakter sebagai input.
Partition
(tetapi bukan variannya yangStringPartition
digunakan di bawah) memiliki argumen opsional keempat untuk memperlakukan inputnya sebagai siklik (dan untuk menentukan bagaimana tepatnya melakukannya), yang membuat solusi ini lebih sederhana daripada string - selain tidak memiliki karakter 15 karakter yang dibangun dalam fungsi.Bahasa Wolfram (Mathematica) , 44 byte
Cobalah online!
Sama, tetapi mengambil string sebagai input.
Berubah
"john"
menjadi"johnjohn"
, lalu ambil semuaStringLength["john"]
substring panjang dari string ini dengan offset 1, produksi{"john","ohnj","hnjo","njoh","john"}
, lalu masukkan yang pertama dengan iniRest
.sumber
Rest@Partition[#~Join~#,Length@#,1]&
akan menjadi 36 byte.Attache , 13 byte
Cobalah online!
Penjelasan
Alternatif
15 byte :
{_&Rotate!1:#_}
16 byte :
{Rotate[_,1:#_]}
16 byte :
Rotate@Rotations
16 byte :
Rotate#(1&`:@`#)
17 byte :
Rotate#{1+Iota@_}
18 byte :
Rotate#(1&`+@Iota)
19 byte :
Rotate#(Succ=>Iota)
sumber
J , 7 byte
Cobalah online!
Penjelasan:
sumber
"
seperti itu sangat pintar, dan membutuhkan pengetahuan kamus bahasa. Apakah ada kata kerja dengan peringkat1 0
?"#:
. Saya belajar ini di sini dari FrownyfrogR , 58 byte
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 34 byte
Cobalah online!
sumber
C (32-bit),
585150 byte-1 byte untuk angka bulat yang bagus berkat ceilingcat
Cobalah online!
Degolf
sumber
~++i+printf("%s%.*s\n",s+i,i,s)
alih-alihi++<printf("%s%.*s\n",s+i,i,s)-2
flooringcat
.Arang , 10 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Untuk memutar ke arah yang berlawanan, ganti
Minus
denganPlus
.sumber
Merah ,
4943 byteCobalah online!
sumber
Python 2 ,
5448 byteCobalah online!
Dipukul dengan baik oleh xnor tetapi diposting sebagai pendekatan alternatif.
sumber
Perl 6 , 32 byte
Cobalah online!
m:ex/^(.*)(.+)$/
ex
secara agresifm
memecah regex yang diberikan, membelah string input di setiap tempat yang memungkinkan, kecuali bahwa substring kedua harus memiliki setidaknya satu karakter - yang mencegah string input muncul dua kali dalam output. Kemudian masing-masingMatch
kelompok tangkapan objek yang dihasilkan direduksi ([]
) menjadi string tunggal denganR~
, operator concatenation string terbalik.sumber
Pushy , 4 byte
Cobalah online!
sumber
V , 8 byte
Cobalah online!
Hexdump:
sumber
ýñx$pÙñd
memberikan 8 dengan menghapus kebutuhan untukH
tio.run/##K/v///DewxsrVAoOzzy8MeX/f6/8jDwAý<M-->ñx$pÙ
Powershell, 44 byte
Skrip uji:
keluaran:
sumber
Tcl , 80
91byteCobalah online!
sumber
proc R t {time {puts [set t [string ra $t 1 end][string in $t 0]]} [string len $t]}
SNOBOL4 (CSNOBOL4) , 82 byte
Cobalah online!
sumber
Lua , 61 byte
Cobalah online!
Membagi string pada indeks berurutan dari satu ke panjang string (pengindeksan berbasis satu), menyatukan potongan-potongan dalam urutan terbalik, mencetak.
sumber
Ruby , 39 byte
Cobalah online!
sumber
JavaScript,
484336 byte-5 byte milik @Bubbler * -7 byte milik @Shaggy
Input adalah array karakter dan output adalah array array karakter.
Cobalah online!
sumber
[..."john"]
dihitung sebagai manipulasi dari string input ke array sebelum pemanggilan fungsi?Common Lisp, 88 byte
Cobalah online!
sumber
MBASIC ,
6966 byte-3 byte, terima kasih kepada Ørjan Johansen
sumber
1 INPUT S$:L=LEN(S$):FOR I=1 TO L:S$=MID$(S$+S$,2,L):PRINT S$:NEXT
.brainfuck , 38 byte
Cobalah online!
Berdasarkan ide JoKing untuk menggunakan null-karakter sebagai simbol ruang. Kode ini menandai huruf-huruf saat ini untuk dicetak dan diulang sampai mencapai ujung kiri.
sumber