Berdasarkan pertanyaan ini dari Peninjauan Kode
Diberikan string karakter ASCII yang tidak kosong yang dapat dicetak, mengeluarkan karakter kedua yang tidak berulang. Misalnya untuk input DEFD
, output F
.
Memasukkan
- Satu string, dalam format apa pun yang sesuai .
Keluaran
- The kedua karakter yang tidak berulang, ketika membaca kiri-ke-kanan, sekali lagi dalam format yang sesuai.
- Karakter keluaran tidak peka huruf besar-kecil.
- Jika tidak ada karakter seperti itu (misalnya, semua karakter ulangi), output string kosong.
Aturan
- Algoritme harus mengabaikan case. Yaitu,
D
dand
dihitung sebagai karakter yang sama. - Program lengkap atau fungsi dapat diterima.
- String input akan dijamin non-kosong (mis., Setidaknya satu karakter panjangnya).
- String input adalah ASCII. Setiap karakter yang valid dapat diulang, bukan hanya alfanumerik (ini termasuk spasi).
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Contohnya
Input ada di baris pertama, output ada di baris kedua.
DEFD
F
FEED
D
This is an example input sentence.
x
...,,,..,,!@
@
ABCDefgHijklMNOPqrsTuVWxyz
B
AAAAAABBBBB
Thisxthis
This this.
.
Jawaban:
MATL , 11 byte
Ini keluar dengan kesalahan (diizinkan secara default) jika tidak ada karakter kedua yang tidak diulang.
Cobalah online!
Penjelasan
sumber
Retina , 25 byte
Cobalah online! (Baris pertama memungkinkan menjalankan kode pada suite uji beberapa input.)
Penjelasan
Ini hanya pertandingan regex tunggal, regexnya adalah:
Artinya, cocokkan karakter dan pastikan tidak muncul di tempat lain di input. Sisanya adalah konfigurasi:
i
mengaktifkan ketidakpekaan case.!
memberitahu Retina untuk mencetak korek api dan bukan menghitungnya.2=
memberitahu Retina untuk mencetak hanya pertandingan kedua yang bertentangan dengan mereka semua.sumber
2=
.05AB1E,
1512 byteDijelaskan
Cobalah online
Disimpan 3 byte berkat @Adnan
sumber
l©v®y¢iy}}1@
:).Python 2,
5958 byteMengembalikan daftar karakter tunggal, atau daftar kosong jika tidak ada output. (Ketidakpekaan kasus bodoh ...)
Cobalah online
sumber
Jelly , 11 byte
Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Batch, 171 byte
Formulasi alternatif, juga 171 byte:
sumber
Pyth,
1615 byteTerima kasih 1 byte ke @ mbomb007
Suite uji.
sumber
[1:2]
triknya.t<…2
alih - alih:…1 2
. Anda dapat menyimpan byte lain dengan memindahkan=rz1
ke penggunaan pertama, jika Anda juga mengubah1
keZ
(untuk huruf kecil bukan output huruf besar):t<fq1/zT=rzZ2
.Sebenarnya, 19 byte
Cobalah online!
Penjelasan:
sumber
C #,
129128 bytebekerja dengan baik. Saya berharap saya tidak perlu huruf kecil semuanya
sumber
C # lambda dengan Linq, 63 byte
sumber
.Skip(1).First()
dengan.ElementAt(1)
.ToList()[1]
C #, 141 byte
Tanpa istirahat (terkecil), 135 byte
Dengan untuk (;;), 150 byte
Tidak dikoleksi dengan komentar
12 byte disimpan oleh TuukkaX (ubah hitung menjadi c).
3 byte disimpan oleh TuukkaX (ubah string ke var).
4 byte disimpan oleh TuukkaX di "With for (;;)" (diubah saat (true) menjadi untuk (;;)).
2 byte disimpan oleh TuukkaX (diubah c ++; if (c == 2) menjadi if (++ c == 2)).
14 byte disimpan oleh Bryce Wagner (diubah x.ToCharArray () menjadi x).
sumber
var
alih-alihstring
dan memiliki sesuatu sepertic
bukancount
.kode mesin x86, 43 byte
Dalam hex:
Fungsi mengambil pointer ke string input di (E) SI dan integer di (E) DX dan mengembalikan (E) DX-th karakter yang tidak berulang atau nol jika tidak ada karakter seperti itu. Sebagai efek samping itu mengubah string ke huruf besar.
Membongkar:
sumber
APL, 32 byte
Cobalah || Semua uji kasus
Penjelasan:
Saya akan mempostingnya dengan 16 byte, tetapi saya menyadari itu harus case-insensitive ...
sumber
(⎕UCS ⍵)+32×⍵∊⎕A
→819⌶⍵
⌶
secara umum dan untuk layanan 819 ("819" ≈ "BIg"). Cobalah online!Retina,
4336 byteCobalah online!
sumber
Mathematica, 49 byte
Fungsi anonim. Mengambil daftar karakter sebagai input. Abaikan setiap kesalahan yang dihasilkan.
sumber
JavaScript (Firefox 48 atau yang lebih lama), 60 byte
Mengembalikan
undefined
jika hanya ada nol atau satu karakter yang tidak berulang. Bekerja dengan case-insensitive menghapus semua kemunculan karakter yang muncul lebih dari satu kali dalam string. Bergantung pada ekstensi Firefox non-standar yang telah dihapus di Firefox 49.119ES6 versi 91 byte:Secara rekursif mencari semua karakter yang muncul setidaknya dua kali dalam string. Jika karakter muncul tepat dua kali maka kedua kejadian dihapus jika tidak hanya kejadian pertama dihapus (kejadian lainnya akan dihapus kemudian). Ini memungkinkan kejadian memiliki kasus perbedaan.
sumber
m[1]
dengannew RegExp(`${m[1]}`,"gi")
J, 25 byte
Pemakaian
Penjelasan
sumber
Bash, 58 byte
Perhatian: Ini membuat file sementara bernama t . Jika sudah ada, itu akan ditimpa.
sumber
C, 174 byte
Ini bukan implementasi yang paling singkat, tetapi cukup efisien. Pada dasarnya ia menggunakan daftar yang ditautkan ganda untuk mempertahankan sekumpulan karakter kandidat dan memindai string input hanya sekali. Mengembalikan kode karakter atau nol jika tidak ada yang ditemukan.
Versi sedikit tidak ungolfed:
sumber
C #, 143 byte
sumber
TSQL, 128 byte
Golf:
Tidak Disatukan:
Biola
sumber
Ruby, 53 byte
Input adalah STDIN, output adalah STDOUT. Di Ruby, posisi out-of-index dalam array atau string kembali
nil
, yang tidak dicetak.String#count
adalah fungsi aneh di Ruby karena alih-alih menghitung jumlah kemunculan untuk string yang diteruskan, itu menghitung jumlah kemunculan untuk setiap huruf dalam string itu. Ini biasanya menjengkelkan tetapi kita dapat menggunakannya untuk keuntungan kita saat ini.String#swapcase
menukar huruf besar dan kecil.Versi lama yang tidak aman terhadap karakter khusus seperti
.
- 46 bytesumber
Java 8,
172157 byte-15 byte .. Dang aku buruk dalam golf saat itu. ;)
Penjelasan:
Coba di sini.
sumber
R , 79 byte
Cobalah online!
Saya pasti merasa ada sesuatu yang bisa bermain golf di sini. Tapi saya sangat menikmati tantangan ini.
Jawaban ini memecah string menjadi vektor karakter, mengubahnya semua menjadi huruf kecil, dan tabel mereka (menghitungnya). Karakter yang muncul satu kali dipilih dan dibandingkan dengan karakter dalam vektor yang disebutkan di atas, maka nilai kedua yang benar dikembalikan sebagai output. String kosong, atau string tanpa karakter berulang menghasilkan NA.
sumber
Perl 6 ,
3832 byte-6 byte terima kasih kepada nwellnhof dengan mengubah
.comb
ke case regex yang tidak sensitifCobalah online!
sumber
m:g:i/$^a/
selama 32 byte .K (oK) / K4 , 11 byte
Larutan:
Cobalah online!
Penjelasan:
sumber
Jelly, 15 byte
Cobalah online!
Verifikasi semua testcases. (Sedikit dimodifikasi untuk memenuhi semua testcases)
sumber
Perl, 75 byte
sumber
Javascript (menggunakan Perpustakaan eksternal) (107 byte)
Hancurkan ini menggunakan perpustakaan yang saya tulis. Tidak yakin apakah saya harus menghitung deklarasi variabel "s", yang merupakan string yang dimaksud.
Ini akan menangani input string kosong, input dengan hanya satu karakter yang tidak berulang, dan input dengan 2+ karakter yang tidak berulang
sumber
s=> ...
)Clojure, 109 byte
Wah, saya harap ada cara yang lebih ringkas.
sumber