ในภาษาNimกฎสำหรับการแยกความแตกต่างตัวระบุจะค่อนข้างผ่อนคลายกว่าภาษาอื่น ๆ ส่วนใหญ่เล็กน้อย ตัวระบุสองตัวมีค่าเท่ากันหรือระบุตัวแปรเดียวกันหากทำตามกฎเหล่านี้ :
- อักขระตัวแรกของทั้งคู่เหมือนกัน (case sensitive)
- สตริงทั้งสองจะเหมือนกัน(กรณีในที่สำคัญ)หลังจากลบทุกกรณีของตัวละคร
-
และ_
ท้าทาย
เขียนโปรแกรม / ฟังก์ชั่นที่รับสองสายอักขระที่เป็นตัวแทนของตัวบ่งชี้นิ่มและส่งออกค่าจริงหรือเท็จตามว่าพวกเขาจะเทียบเท่าหรือไม่ตามกฎข้างต้น
ข้อมูลจำเพาะ
- กฎระเบียบมาตรฐาน I / O ใช้
- ช่องโหว่มาตรฐานจะต้องห้าม
- สตริงจะมี ASCII ที่พิมพ์ได้เท่านั้น คุณไม่จำเป็นต้องตรวจสอบว่าเป็นตัวระบุที่ถูกต้องหรือไม่
- สตริงอาจถูกใช้เป็นอินพุตแยกกันสองรายการรายการสตริง ฯลฯ (คุณรู้จักการเจาะ)
- ไม่จำเป็นต้องจัดการสตริงว่าง
- เอาท์พุทจะต้องสอดคล้องกันสำหรับทั้งความจริงและความเท็จค่า
- ความท้าทายนี้ไม่ได้เกี่ยวกับการหาวิธีการที่สั้นที่สุดในทุกภาษาค่อนข้างมันเป็นเรื่องเกี่ยวกับการหาวิธีการที่สั้นที่สุดในแต่ละภาษา
- รหัสของคุณจะได้รับคะแนนเป็นไบต์มักจะอยู่ในการเข้ารหัส UTF-8 เว้นแต่จะระบุไว้เป็นอย่างอื่น
- อนุญาตให้ใช้ฟังก์ชันในตัวที่ทำงานนี้แต่รวมถึงโซลูชันที่ไม่ต้องพึ่งพาในตัว
- คำอธิบายแม้สำหรับภาษา "ปฏิบัติ" จะได้รับการสนับสนุน
กรณีทดสอบ
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
การใช้งานอ้างอิงที่ไม่ดี
สิ่งนี้เขียนด้วยภาษานิมเอง
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")
เพราะฉันคิดว่าคำตอบเดียวให้ผลลัพธ์ที่ไม่คาดคิด
>
?
f("_test", "test")
ผมขอแนะนำให้กรณีการทดสอบของ