Dalam bahasa Nim , aturan untuk membedakan pengidentifikasi sedikit lebih santai daripada kebanyakan bahasa lainnya. Dua pengidentifikasi setara atau alamat variabel yang sama jika mereka mengikuti aturan ini :
- karakter pertama keduanya sama (case sensitive)
- kedua string adalah sama (kasus di sensitive) setelah menghapus semua contoh dari karakter
-
dan_
Tantangan
Tulis program / fungsi yang mengambil dua string yang mewakili pengidentifikasi Nim dan menghasilkan nilai kebenaran atau falsey berdasarkan pada apakah mereka setara dengan aturan di atas.
Spesifikasi
- Aturan I / O standar berlaku .
- Celah standar yang dilarang .
- String hanya akan berisi printable ASCII . Anda tidak perlu memeriksa apakah itu pengidentifikasi yang valid.
- String dapat diambil sebagai dua input terpisah, daftar string, dll. (Anda tahu bornya)
- String kosong tidak perlu ditangani.
- Keluaran harus konsisten untuk nilai-nilai kebenaran dan falsey.
- Tantangan ini bukan tentang menemukan pendekatan terpendek dalam semua bahasa, melainkan tentang menemukan pendekatan terpendek dalam setiap bahasa .
- Kode Anda akan dinilai dalam byte , biasanya dalam pengkodean UTF-8, kecuali ditentukan lain.
- Fungsi built-in yang melakukan tugas ini diizinkan tetapi termasuk solusi yang tidak bergantung pada built-in dianjurkan.
- Penjelasan, bahkan untuk bahasa "praktis", dianjurkan .
Uji kasus
Input Output
count, Count falsey
lookMaNoSeparator, answer falsey
_test, test falsey
test, tset falsey
aVariableName, a_variable_name truthy
numbers_are_cool123, numbersAreCool123 truthy
symbolsAre_too>_>, symbols_areTOO>> truthy
Implementasi referensi tidak dikumpulkan
Ini ditulis dalam Nim, itu sendiri.
import strutils, re
proc sameIdentifier(a, b: string): bool =
a[0] == b[0] and
a.replace(re"_|–", "").toLower == b.replace(re"_|–", "").toLower
f("test", "tset")
, karena saya pikir satu jawaban memberikan hasil yang tidak terduga.
>
?
f("_test", "test")
.