LeetCode #804 UniqueMorseCodeWords. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접,연결리스트
Nice performance
Runtime: 4 ms, faster than 94.68% of C++ online submissions for Unique Morse Code Words.
Memory Usage: 9 MB, less than 72.20% of C++ online submissions for Unique Morse Code Words.
LeetCode #804
Q.
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.
국제 모르스 부호는 각 문자의 기준된 인코딩을 정의하는데, 문자들은 점과 대시의 연속으로 매핑되어 있다.
다음과 같이: a 는 .-, b 는 -..., c 는 -.-, 등이 있다.
For convenience, the full table for the 26 letters of the English alphabet is given below:
편의상, 영어 알파벳 26개 전체는 아래와 같다.
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
Now, given a list of words, each word can be written as a concatenation of the Morse code of each letter. For example, "cba" 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.
이제, 주어진 문자열에서, 각 문자는 각 문자의 모르스부호의 연속으로 쓰여질 수 있다. 예를들면, "cba" 는 "-.-..--..." 으로 쓰여질 수 있다. ( "-.-." + "-..." + ".-" 의 연속이다. ). 우리는 그 연속된 것, 문자의 변형을 호출할 것이다.
우리가 가진 모든 문자들 중에서, 만들 수 있는 모든 다른 변형들의 숫자를 반환해라.
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 "--...--.".
중복 제외하고, 2개의 다른 변형이 있다.
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.
Process
// Process
//1. Input words
//2. Make morse code array
//3. Iterate words from begin to the end
// 3.1. Make morse code using alphabet in word
// 3.2. Check if morse code is in overlapVector
// 3.2.1. If not -> count
//4. Return count
// 처리과정
//1. 문자들을 입력받는다.
//2. 모르스부호 배열을 만들어둔다.
//3. 문자들 시작부터 끝까지 반복한다.
// 3.1. 문자의 알파벳을 모르스부호로 조합한다.
// 3.2. 조합된 모르스부호가 중복된 것인지 확인해서
// 3.2.1. 안나온 것이면 카운트한다.
//4. 카운트 반환한다.
Code.. lemme see example code!!!
코드.. 예제코드를 보자!!!
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
vector<string> morseStrings {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
vector<string> overlapVec;
for (const auto& val : words) {
string makeMorse = "";
for (const auto& character : val) {
makeMorse += morseStrings[character - 97];
}
if(std::find(overlapVec.begin(), overlapVec.end(), makeMorse) != overlapVec.end()) {
} else {
overlapVec.push_back(makeMorse);
}
}
return overlapVec.size();
}
};
Something else you might like...?
2019/02/19 - [Life/Health care] - Lysine 라이신 usage/side effects/dosage 효과/효능/부작용/성인,소아 용법, 복용법
2019/02/28 - [Life/Health care] - Vitamin K, 비타민 K usage/side effects/dosage 효능/부작용/성인,소아 용법