สมมติว่าเรามีรายการคำ ที่นี่แต่ละคำสามารถเขียนเป็นการต่อรหัสมอร์สของตัวอักษรแต่ละตัวได้ ตัวอย่างเช่น คำว่า "cba" สามารถเขียนเป็น "-.-..--..." ซึ่งเป็นการต่อ "-.-" | "-..." | ".-") การต่อกันแบบนี้เรียกว่าการแปลงคำ
เรารู้ว่ารหัสมอร์สสากลกำหนดการเข้ารหัสมาตรฐานโดยที่ตัวอักษรแต่ละตัวจะจับคู่กับชุดของจุดและขีดกลางดังนี้:"a" จับคู่กับ ".-", "b" จับคู่กับ "-...", "c " แมปกับ "-.-." เป็นต้น
รายชื่อตัวอักษรภาษาอังกฤษทั้ง 26 ตัวมีดังนี้ −
[".-","-...","-.-.","-..",".","..-.","--.","....", "..",".---","-.-",".-..","--","-.","---",".--.","- -.-",".-.","...","-","..-","...-",".--","-..-","-. --","--.."]
ดังนั้น หากอินพุตเป็นเหมือน ["gin", "zen", "gig", "msg"] ผลลัพธ์จะเป็น 2 เนื่องจากการแปลงของแต่ละคำคือ:"gin" จะเป็น "--.. .-.", "zen" จะเป็น "--...-." "กิ๊ก" จะเป็น "-...--" และ "msg" จะเป็น "--...--.".
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- รหัสมอร์ส:=[".-","-...","-.-.","-..",".","..-.","--."," ....","..",".---","-.-",".-..","--","-.","---",".- -.","--.-",".-.","...","-","..-","...-",".--","-.. -","-.--","--.."]
- s:=ชุดใหม่
- สำหรับแต่ละคำในคำ ทำ
- temp:=สตริงว่าง
- สำหรับแต่ละ c ใน word ทำ
- อุณหภูมิ :=อุณหภูมิ + morse_codes[ASCII ของ c - 97]
- เพิ่มอุณหภูมิใน s
- ขนาดผลตอบแทนของ s
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
วิธีแก้ปัญหาของคลาส:def uniqueMorseRepresentations(self, words):morse_codes=[".-","-...","-.-.","-..",".","..- .","-- .","....","..",".---","-.-",".-..","--","-" ,"---",".--.","--.-",".- .","...","-","..-","...-", ".--","-..-","-.--","--.."] s=set() สำหรับคำในคำ:temp='' สำหรับ c ใน word:temp+=morse_codes[ ord(c)-97] s.add(ชั่วคราว) return len(s)ob =Solution()print(ob.uniqueMorseRepresentations(["gin", "zen", "gig", "msg"]))ก่อน>อินพุต
["gin", "zen", "gig", "msg"]ผลลัพธ์
2