การตรวจจับเป็นเครื่องมือทั่วไปที่ใช้กับ interwebs แต่พวกเขามักตรวจข่าวมากเกินไปและทำให้คำสาปแช่งคลุมเครือต่อผู้อ่าน และบางครั้งพวกเขาตรวจข่าวไม่เพียงพอดังนั้นคำเหล่านั้นจึงยังคงขุ่นเคือง งานของคุณคือแก้ไขมัน
งานของคุณ
เขียนโปรแกรม / ฟังก์ชั่น / อะไรก็ตามที่ใช้สองรายการและสตริง ["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"]
รายการแรกจะเป็นในพจนานุกรมของทุกคำในภาษาของคุณเช่น: ต่อไปจะเป็นส่วนหนึ่งของรายการแรกที่มีทั้งหมดของความไม่พอใจ["belgium", "offensive"]
คำในภาษา: คำในรายการเหล่านี้รับประกันว่าจะมีตัวอักษรตัวพิมพ์เล็กเท่านั้นของตัวอักษร
สตริงเป็นวลีที่คุณจะต้องตรวจสอบ มันจะทำจากคำจากพจนานุกรมคั่นด้วยช่องว่าง:"Goodbye offensive belgium"
ค่าส่งคืนจะถูกตรวจสอบวลีนั้น อย่างไรก็ตามคุณต้องเซ็นเซอร์ในวิธีที่แน่นอน โดยเฉพาะอย่างยิ่งสำหรับแต่ละคำในรายการที่ไม่เหมาะสมคุณต้องตรวจสอบตัวอักษรให้มากที่สุดเท่าที่จะเป็นไปได้ในขณะที่ยังคงชัดเจนในพจนานุกรมหลัก Goodbye o******** b******
ดังนั้นที่นี่มันจะเป็น:
ชี้แจง
- รหัสของคุณต้องตีความคำที่เป็นตัวพิมพ์ใหญ่ - เล็ก แต่กลับมาพร้อมกับการใช้อักษรตัวพิมพ์ใหญ่เริ่มต้น
- หากมีคำตอบที่ดีที่สุดหลายข้อให้เลือกข้อใดข้อหนึ่ง
- หากการเซ็นเซอร์ที่ไม่ชัดเจนนั้นเป็นไปไม่ได้ให้ตรวจสอบจดหมายฉบับเดียวที่มีการตีความที่เป็นไปได้น้อยที่สุด (หากเป็นไปได้หลายฉบับ
กรณีทดสอบ
["hello", "goodbye", "belgium", "offensive", "jumping", "hypercool"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
["word"] ["word"] "word" -> "****"
["hot", "hat", "bat", "had"] ["hat"] "hat" -> "*at" or "h*t" or "ha*"
https://gist.github.com/deekayen/4148741 ["quart"] "I am a quart" -> "I am a q**r*"
นี่คือcode-golfดังนั้นรหัส d * mn สั้นที่สุดในหน่วยไบต์ชนะ!
PS ใครก็ตามที่อ้างอิงกับเบลเยี่ยม? ; P
["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye o******** b******"
แต่กรณีทดสอบบอกว่า["hello", "goodbye", "belgium", "offensive"] ["belgium", "offensive"] "Goodbye offensive belgium" -> "Goodbye offensive b******"
กรณีทดสอบผิดถูกต้อง?