Ini pada dasarnya kebalikan dari Menghasilkan Plat Lisensi AS
Tantangan: Diberikan string yang cocok dengan salah satu format plat nomor di bawah ini, output semua kemungkinan status yang cocok dengan format itu. Dalam tabel di bawah ini 0
berdiri untuk satu digit 0
melalui 9
inklusif, dan A
singkatan dari satu huruf A
melalui Z
inklusif. Untuk keperluan tantangan ini, kami mengabaikan negara dengan aturan format yang rumit (seperti Delaware, yang memiliki jumlah variabel variabel), dan mengabaikan penghapusan huruf yang mirip (misalnya, I
dan 1
).
AAA 000: AK, IA, MS, MP, VT
0000: AS
AAA0000: AZ, GA, WA
000 AAA: AR, KS, KY, LA, ND, OR
0AAA000: CA
AA-00000: CT
AA-0000: DC
AAA A00: FL
AA 00000: IL
000A,000AA,000AAA,AAA000: IN
0AA0000: MD
AAA 0000,0AA A00,AAA 000: MI
000-AAA: MN
00A-000: NV
000 0000: NH
A00-AAA: NJ
000-AAA,AAA-000: NM
AAA-0000: NY, NC, PA, TX, VA, WI
AAA 0000: OH
000AAA: OK
AAA-000: PR
000-000: RI
AAA 000,000 0AA: SC
A00-00A: TN
A00 0AA: UT
Contoh:
B32 9AG
[UT]
1YUC037
[CA]
285 LOR
[AR, KS, KY, LA, ND, OR] (in any order)
285-LOR
[MN, NM] (in any order)
285LOR
[IN, OK] (in any order)
Aturan dan Klarifikasi
- String input dijamin non-kosong, dan dijamin salah satu format di atas
- Perilaku jika diberi format selain yang di atas tidak ditentukan
- Input dan output dapat diberikan dengan metode apa pun yang mudah
- Anda dapat mencetak hasilnya ke STDOUT atau mengembalikannya sebagai hasil fungsi
- Program lengkap atau fungsi dapat diterima
- Celah standar dilarang
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang
sumber
[A-Z]*.
bukannya.*?[a-z]
harus menyimpan satu byteT-SQL, 475 byte
Jeda baris hanya untuk keterbacaan.
Terbatas untuk SQL 2017 atau lebih tinggi dengan menggunakan
TRIM
fungsi ini. SQL 2016 (diperlukan untukSTRING_SPLIT
), mungkin dengan menggantiRTRIM
dengan biaya 1 byte.Saya pada dasarnya melakukan
LIKE
pencocokan terbalik : Saya memperluas pola setiap lempeng ke string pencocokan pola wildcard penuh seperti'[A-Z][0-9][0-9] [0-9][A-Z][A-Z]'
, kemudian membandingkan dengan nilai input, dan mengembalikan negara yang cocok (yang digabungkan ke dalam satu bidang).Mungkin bisa menghemat lebih banyak ruang dengan GZIP'ing string panjang; Saya akan melihat apakah itu membantu ...
sumber
Perl 5
(-p)
, 165 bytePort jawaban Javascript @ Arnauld, juga mendukungnya.
Cobalah online!
sumber
Arang , 177 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Coba semua test case! Tautan adalah untuk mengucapkan versi kode. (Kode yang sedikit berbeda diperlukan untuk memproses banyak kasus.)
Tidak mengherankan bahwa port solusi @ Arnauld jauh lebih pendek, hanya 121 byte:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Modulo kedua oleh 30 tersirat dalam pengindeksan ke dalam array.
sumber
Python 3 ,
382378 byteCobalah online!
Mengganti angka dengan
0
dan dengan huruf1
, lalu mencari string untuk plat diikuti oleh string huruf. Maka itu hanya mengembalikan setiap pasangan huruf yang tidak tumpang tindih dalam string itu.Bukan byte paling efisien, tapi awal yang bagus (mungkin).
Saya menikmati tantangan berdasarkan informasi yang tidak bisa dihasilkan begitu saja.
sumber
05AB1E , 176 byte
Cobalah online!
sumber