Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 독특한 모스 부호 단어

<시간/>

단어 목록이 있다고 가정합니다. 여기에서 각 단어는 각 문자의 모스 부호를 연결하여 작성할 수 있습니다. 예를 들어 "cba"라는 단어는 "-.-..--..."로 쓸 수 있습니다. 이것은 연결 "-.-."입니다. | "-..." | ".-"). 이러한 연결을 단어 변환이라고 합니다.

국제 모스 부호는 다음과 같이 각 문자가 일련의 점과 대시에 매핑되는 표준 인코딩을 정의한다는 것을 알고 있습니다. "a"는 ".-"에 매핑되고, "b"는 "-..."에 매핑되고, "c "는 "-.-."에 매핑됩니다.

다음은 영어 알파벳의 26자 전체 목록입니다. -

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

따라서 입력이 ["gin", "zen", "gig", "msg"]와 같으면 각 단어의 변환이 "gin"이 "--.."이므로 출력은 2가 됩니다. .-.", "zen"은 "--...-"입니다. "공연"은 "--...--"가 됩니다. "msg"는 "--...--."가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • morse_codes:=[".-","-...","-.-.","-..",".","..-.","--."," ....","..",".---","-.-",".-..","--","-.","---",".- -.","--.-",".-.","...","-","..-","...-",".--","-.. -","-.--","--.."]
  • s:=새로운 세트
  • 단어의 각 단어에 대해 수행
    • temp:=빈 문자열
    • 단어의 각 c에 대해 수행
      • temp :=temp + morse_codes[C의 ASCII - 97]
    • s에 온도 추가
  • s의 반환 크기

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

클래스 솔루션:def uniqueMorseRepresentations(self, words):morse_codes=[".-","-...","-.-.","-..",".","..- .","-- .","....","..",".---","-.-",".-..","--","-." ,"---",".--.","--.-",".- .","...","-","..-","...-", ".--","-..-","-.--","--.."] 단어로 된 단어의 경우 s=set():단어로 된 c의 경우 temp='':temp+=morse_codes[ ord(c)-97] s.add(temp) return len(s)ob =Solution()print(ob.uniqueMorseRepresentations(["gin", "zen", "gig", "msg"])) 

입력

["진", "젠", "공연", "메시지"]

출력

2