[804].唯一摩尔斯密码词
Posted Debroon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[804].唯一摩尔斯密码词相关的知识,希望对你有一定的参考价值。
题目:https://leetcode-cn.com/problems/unique-morse-code-words/
输入: words = ["gin", "zen", "gig", "msg"]
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."
本来应该是 4 种翻译,但俩俩相同,只有 2 种不同翻译, "--...-." 和 "--...--.".
我们求的是不同的数量。
函数原型
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
vector<string> arr = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."];
}
};
集合Set
思路:放入集合中,因为集合没有重复元素,最后我们只要看有多少个元素,就有多少个不同的摩尔斯密码词。
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
set<string> st;
vector<string> arr = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
for(int i=0; i<words.size(); ++i) {
string str = "";
for(int j=0; j<words[i].size(); ++j)
str += arr[ words[i][j] - 'a' ];
st.insert(str);
}
return st.size();
}
};
映射Map
映射 Map 也可以称为,字典。
- 键 : 值,根据键,快速找到值
思路同上。
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
map<string, int> m;
string Morse[26] = {
".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",
".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",
".--","-..-","-.--","--.."
};
for(int i = 0; i < words.size(); i++) {
string str = "";
for(int j = 0; j < words[i].size(); j++)
str += Morse[ words[i][j] - 'a' ];
m[str] ++;
}
return m.size();
}
}
以上是关于[804].唯一摩尔斯密码词的主要内容,如果未能解决你的问题,请参考以下文章