Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- programmers
- hackerrank
- ubuntu
- github
- 맥북
- 데이콘
- Git
- Docker
- 백준
- 코로나19
- leetcode
- SW Expert Academy
- 파이썬
- dacon
- 자연어처리
- 우분투
- AI 경진대회
- 캐치카페
- 편스토랑 우승상품
- 금융문자분석경진대회
- ChatGPT
- Kaggle
- gs25
- PYTHON
- 프로그래머스 파이썬
- 편스토랑
- Real or Not? NLP with Disaster Tweets
- Baekjoon
- 프로그래머스
- 더현대서울 맛집
Archives
- Today
- Total
솜씨좋은장씨
[leetCode] 804. Unique Morse Code Words (Python) 본문
728x90
반응형
International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: "a" maps to ".-", "b" maps to "-...", "c" maps to "-.-.", and so on.
For convenience, the full table for the 26 letters of the English alphabet is given below:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, "cab" can be written as "-.-..--...", (which is the concatenation "-.-." + ".-" + "-..."). We'll call such a concatenation, the transformation of a word.
Return the number of different transformations among all words we have.
Example:
Input: words = ["gin", "zen", "gig", "msg"]
Output: 2
Explanation:
The transformation of each word is:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
There are 2 different transformations, "--...-." and "--...--.".
Note:
- The length of words will be at most 100.
- Each words[i] will have length in range [1, 12].
- words[i] will only consist of lowercase letters.
Solution 1
class Solution:
@staticmethod
def transformation(text):
morse_dict = {'a': '.-', 'b': '-...', 'c': '-.-.', 'd': '-..', 'e': '.', 'f': '..-.', 'g': '--.', 'h': '....', 'i': '..', 'j': '.---', 'k': '-.-', 'l': '.-..', 'm': '--', 'n': '-.', 'o': '---', 'p': '.--.', 'q': '--.-', 'r': '.-.', 's': '...', 't': '-', 'u': '..-', 'v': '...-', 'w': '.--', 'x': '-..-', 'y': '-.--', 'z': '--..'}
char_list = list(text)
temp = ""
for char in char_list:
temp = temp + morse_dict[char]
return temp
def uniqueMorseRepresentations(self, words: List[str]) -> int:
morse_list = []
for word in words:
morse = self.transformation(word)
morse_list.append(morse)
set_morse = set(morse_list)
return len(set_morse)
Solution 2
class Solution:
@staticmethod
def transformation(text):
morse_dict = {'a': '.-', 'b': '-...', 'c': '-.-.', 'd': '-..', 'e': '.', 'f': '..-.', 'g': '--.', 'h': '....', 'i': '..', 'j': '.---', 'k': '-.-', 'l': '.-..', 'm': '--', 'n': '-.', 'o': '---', 'p': '.--.', 'q': '--.-', 'r': '.-.', 's': '...', 't': '-', 'u': '..-', 'v': '...-', 'w': '.--', 'x': '-..-', 'y': '-.--', 'z': '--..'}
char_list = list(text)
temp = ""
for char in char_list:
temp = temp + morse_dict[char]
return temp
def uniqueMorseRepresentations(self, words: List[str]) -> int:
morse_list = []
for word in words:
morse = self.transformation(word)
if morse not in morse_list:
morse_list.append(morse)
return len(morse_list)
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[leetCode] 784. Letter Case Permutation (Python) (0) | 2021.01.26 |
---|---|
[leetCode] 367. Valid Perfect Square (Python) (0) | 2021.01.25 |
[leetCode] 1636. Sort Array by Increasing Frequency (Python) (0) | 2021.01.23 |
[leetCode] 648. Replace Words (Python) (0) | 2021.01.22 |
[leetCode] 80. Remove Duplicates from Sorted Array II (Python) (0) | 2021.01.21 |
Comments