Computer >> Máy Tính >  >> Lập trình >> Python

Các từ mã Morse độc ​​đáo trong Python

Giả sử chúng ta có một danh sách các từ, ở đây mỗi từ có thể được viết dưới dạng ghép của mã Morse của mỗi chữ cái. Ví dụ, từ "cba" có thể được viết thành "-.-.. - ...", đây là từ nối "-.-." | "-..." | ".-"). Kiểu nối này được gọi là sự biến đổi của một từ.

Chúng tôi biết rằng Mã Morse Quốc tế xác định một mã hóa tiêu chuẩn trong đó mỗi chữ cái được ánh xạ tới một loạt các dấu chấm và dấu gạch ngang, như sau:"a" ánh xạ tới ".-", "b" ánh xạ tới "-...", "c "ánh xạ tới" -.-. ", v.v..

Đây là danh sách tất cả 26 chữ cái trong bảng chữ cái tiếng Anh như sau -

[".-", "-...", "-.-.", "- ..", ".", "..-.", "-.", "....", "..", ".---", "-.-", ".- ..", "-", "-.", "---", ".--.", "- -.- "," .-. "," ... "," - "," ..- "," ...- "," .-- "," -..- "," -. - "," - .. "]

Vì vậy, nếu đầu vào là ["gin", "zen", "gig", "msg"], thì đầu ra sẽ là 2, vì Phép biến đổi của mỗi từ là:"gin" sẽ là "- .. .-. "," zen "sẽ là" --...-. " "gig" sẽ là "--...--." và "msg" sẽ là "--...--.".

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • morse_codes:=[".-", "-...", "-.-.", "- ..", ".", "..-.", "-.", " .... "," .. "," .--- "," -.- "," .- .. "," - "," -. "," --- "," .- -. "," --.- "," .-. "," ... "," - "," ..- "," ...- "," .-- "," - .. - "," -.-- "," - .. "]
  • s:=một tập hợp mới
  • đối với mỗi từ trong các từ, hãy thực hiện
    • temp:=chuỗi trống
    • đối với mỗi c trong word, hãy thực hiện
      • temp:=temp + morse_codes [ASCII of c - 97]
    • thêm nhiệt độ vào s
  • trả về kích thước của s

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

 class Giải pháp:def uniqueMorseRepresentations (self, words):morse_codes =[".-", "-...", "-.-.", "- ..", ".", "..- . "," -. "," .... "," .. "," .--- "," -.- "," .- .. "," - "," -. " , "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "- .."] s =set () cho từ trong từ:temp ='' cho c trong từ:temp + =morse_codes [ ord (c) -97] s.add (temp) return len (s) ob =Solution () print (ob.uniqueMorseRepresentations (["gin", "zen", "gig", "msg"]))  

Đầu vào

 ["gin", "zen", "gig", "msg"] 

Đầu ra

 2