단어 목록이 있다고 가정합니다. 여기에서 각 단어는 각 문자의 모스 부호를 연결하여 작성할 수 있습니다. 예를 들어 "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