Hapus semua kata berulang dari kalimat yang dimasukkan.
Input akan berupa sesuatu cat dog cat dog bird dog Snake snake Snake
dan output harus cat dog bird Snake snake
. Akan selalu ada satu ruang yang memisahkan kata-kata.
Urutan output harus sama dengan input. (Lihat contoh)
Anda tidak perlu menangani tanda baca tetapi penanganan huruf kapital diperlukan.
Snake
dansnake
diperlakukan hanya sebagai berbedaJawaban:
gs2 , 3 byte
Dikodekan dalam CP437 .
STDIN didorong pada awal program.
,
membaginya di atas spasi.É
adalahuniq
, yang memfilter duplikat.-
bergabung dengan spasi.sumber
CJam, 7 karakter
Mungkin bisa jauh lebih pendek ... tapi apa pun yang saya hampir tidak pernah menggunakan CJam. ^. ^
q
membaca input,S/
membagi pada spasi,_&
duplikat dan menerapkan setwise AND (karena itu menghilangkan duplikat), danS*
bergabung kembali pada spasi.Tautan penerjemah online
sumber
Haskell, 34 byte
Contoh penggunaan:
(unwords.nub.words) "cat dog cat dog bird dog Snake snake Snake"
->"cat dog bird Snake snake"
.sumber
APL,
2220 byteIni menciptakan fungsi monadik tanpa nama yang menerima string di sebelah kanan dan mengembalikan string.
Penjelasan:
Cobalah online
Disimpan 2 byte berkat Dennis!
sumber
Ruby, 21 karakter
sumber
JavaScript (ES6) 33
(lihat jawaban ini )
Tes menjalankan cuplikan di bawah ini di peramban yang mendukung EcmaScript 6 (mengimplementasikan Set, spread operator, string templat dan fungsi panah - saya menggunakan Firefox).
Catatan: konversi ke Tetapkan jatuhkan semua duplikat dan Tetapkan mempertahankan urutan asli.
sumber
TeaScript , 12 byte
TeaScript adalah JavaScript untuk bermain golf.
Ini sangat singkat. Itu terbagi pada setiap ruang, menyaring duplikat, lalu bergabung kembali.
Cobalah online
sumber
tee-a script
atautee script
?cdfghijklmnopstuvw
dicadangkan untuk variabel, mereka semua diinisialisasi ke 0.b
juga dicadangkan untuk nama variabel, ini diinisialisasi ke string kosongPowerShell, 15 Bytes
Whoa, entri aktual di mana PowerShell agak kompetitif? Itu tidak mungkin!
Mengambil string sebagai argumen input, pipa ke
Select-Object
dengan-Unique
bendera. Meludahkan serangkaian string, menjaga ketertiban, dan penggunaan huruf besar seperti yang diminta.Pemakaian:
Jika ini terlalu "cheaty" dalam asumsi input dapat sebagai argumen baris perintah, kemudian pergi untuk yang berikut ini, di
2421 Bytes (disimpan beberapa byte berkat blabb ) . Menariknya, menggunakan operator unary dalam arah ini juga berfungsi jika string input dibatasi dengan tanda kutip atau sebagai argumen individual, karena defaultnya-split
adalah spasi. Bonus.sumber
Julia, 29 byte
Ini menciptakan fungsi tanpa nama yang memisahkan string menjadi vektor pada spasi, hanya menyimpan elemen unik (mempertahankan urutan), dan menggabungkan array kembali ke string dengan spasi.
sumber
R, 22 byte
Ini membaca string dari STDIN dan membaginya menjadi vektor pada spasi menggunakan
scan(,"")
, hanya memilih elemen unik, kemudian menggabungkannya menjadi string dan mencetaknya ke STDOUT menggunakancat
.sumber
Retina , 22 byte
Simpan file dengan trafeed linefeed dan jalankan dengan
-s
flag.Ini cukup lurus ke depan karena cocok dengan satu kata, dan lihat di belakang memeriksa apakah kata yang sama telah muncul dalam string sebelumnya. Linefeed trailing menyebabkan Retina bekerja dalam mode Ganti dengan string pengganti kosong, menghapus semua kecocokan.
sumber
Mathematica,
4339 bytesumber
StringRiffle[]
.Keys@Counts
bukannyaDeleteDuplicates
Keys@Counts
mempertahankan pesanan?Counts[list]
memberikan asosiasi yang kuncinya berada dalam urutan yang sama seperti yang pertama kali terjadi sebagai elemen daftar.Pyth - 9 byte
Nah inilah mengapa kita semua menunggu Pyth5, bisa jadi 5 byte.
Cobalah online di sini .
sumber
C ++ 11, 291 byte
Saya tidak melihat banyak jawaban C ++ dibandingkan dengan bahasa golf, jadi mengapa tidak. Perhatikan bahwa ini menggunakan fitur C ++ 11, dan jika kompiler Anda
terjebak dalam zaman yangcukup tua, Anda mungkin perlu melewati sakelar kompilasi khusus untuk membuatnya menggunakan standar C ++ 11. Sebabg++
, itu-std=c++11
(hanya diperlukan untuk versi <5.2). Cobalah onlinesumber
set
? Itu tidak memungkinkan duplikat oleh desain. Dorong saja ke dalamnya.set
tidak dijamin memiliki barang dalam urutan yang sama seperti saat ditambahkanK5, 9 byte
FYI, ini adalah fungsi.
Penjelasan
sumber
Matlab: 18 Bytes
di mana
d
adalahd = {'cat','dog','cat','dog','bird','dog','Snake','snake','Snake'}
.Hasilnya adalah
'cat' 'dog' 'bird' 'Snake' 'snake'
sumber
d
sudah ditugaskan. Anda dapat memperbaikinya dengan menggunakan gagang fungsi:,@(d)unique(d,'stable')
dengan biaya 4 byte.Python 3, 55
Ya, ini panjang. Sayangnya, Python
set
tidak mematuhi urutan unsur-unsurnya, jadi kita harus mengerjakannya sendiri. Kami beralih melalui kata-kata input, menyimpan daftarl
elemen yang belum masukl
. Kemudian, kami mencetak isi yangl
dipisahkan ruang.Versi string
l
tidak akan berfungsi jika beberapa kata adalah substring dari kata lain.sumber
C #, 38 byte
sumber
s
, saya pikir Anda harus mendapatkannya sebagai argumen.Perl 6, 14 byte
Secara keseluruhan, satu-satunya cara Anda menulisnya adalah 21 byte
Sebagai ungkapan lambda, yang terpendek adalah 14 byte
Sementara output adalah Daftar, jika Anda memasukkannya ke dalam konteks pengerasan, ia akan menempatkan spasi di antara elemen-elemen. Jika itu persyaratan untuk mengembalikan string, Anda bisa menambahkan a
~
ke depan~*.words.unique
.Jika cuplikan diizinkan, Anda dapat mempersingkatnya menjadi 13 byte dengan menghapus
*
.sumber
Python 3,
8780 byteternyata versi program lengkap lebih pendek
Melakukannya tanpa regex, saya senang
Cobalah online
sumber
Lua, 94 byte
sumber
... return""else l[b]=true end end...
dengan...return""end l[b]=""end...
.awk, 25
Keluaran:
sumber
JavaScript,
106102100 byte// terlalu lama untuk JS :(
sumber
Hassium , 91 byte
Jalankan online dan lihat diperluas di sini
sumber
PHP
6459 bytesumber
explode()
→split()
,implode()
→join()
?split
sedang diasingkan, tapi coba tebak itu tidak masalah untuk codegolving.AppleScript, 162 byte
Menariknya, ini hampir identik dengan karakter karakter yang tidak berulang.
Saya sebenarnya tidak tahu kata kunci yang mempertimbangkan sebelum ini. semakin banyak Anda tahu ...
sumber
Burlesque, 6 byte
Agak sederhana: pisahkan kata-kata, nub (nub = hapus duplikat), konversikan kembali ke kata-kata.
sumber
Gema, 21 karakter
(Sangat mirip dengan solusi karakter unik , karena tidak ada array di Gema, sehingga memungkinkan fungsi unik bawaan tidak banyak membantu kita.)
Contoh dijalankan:
sumber
Scala,
4447 byteEDIT : menggunakan
toSet
mungkin tidak mempertahankan pesanan, jadi saya sekarang menggunakan berbeda // yang hanya menghabiskan 3 byte :(sumber
PHP, 37 Bytes
Dengan asumsi
$s
adalah string input.sumber