Nim dilinde , tanımlayıcıları ayırt etme kuralları diğer dillerden biraz daha rahattır . İki tanımlayıcı eşdeğerdir veya aşağıdaki kurallara uymaları durumunda aynı değişkeni ele alır :
- her ikisinin de ilk karakteri aynıdır (büyük / küçük harfe duyarlı)
- Her iki dizeleri aynıdır (vaka içinde duyarlı) çıkardıktan sonra tüm örneklerini karakterlerin
-
ve_
Meydan okuma
Nim tanımlayıcılarını temsil eden iki dizeyi alan bir program / işlev yazın ve yukarıdaki kurallara eşdeğer olup olmadıklarına göre doğruluk veya falsey değeri verin .
Özellikler
- Standart I / O kuralları geçerlidir .
- Standart boşluklar vardır yasak .
- Dizelerde yalnızca ASCII yazdırılabilir . Bunun geçerli bir tanımlayıcı olup olmadığını kontrol etmenize gerek yoktur .
- Teller iki ayrı giriş olarak alınabilir, tel listesi, vb. (Matkabı biliyorsunuz)
- Boş dizelerin işlenmesi gerekmez .
- Çıktı hem doğruluk hem de falsey değerleri için tutarlı olmalıdır .
- Bu zorluk tüm dillerde en kısa yaklaşımı bulmak değil, her dilde en kısa yaklaşımı bulmakla ilgilidir .
- Kodunuz , aksi belirtilmedikçe, genellikle UTF-8 kodlamasında bayt cinsinden puanlanır .
- Bu görevi yerine getiren yerleşik işlevlere izin verilir, ancak yerleşik olmayan bir çözüm içermesi teşvik edilir.
- "Pratik" diller için bile açıklamalar teşvik edilmektedir .
Test senaryoları
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
Kurtulmamış referans uygulaması
Bu Nim'de yazılmıştır.
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")
, çünkü bir cevap bunun için beklenmedik bir sonuç veriyor.
>
mu?
f("_test", "test")
.