804.唯一摩尔斯密码词
题目:[https://leetcode-cn.com/problems/unique-morse-code-words/description/]
思路:1、初始化莫斯代码表,字母表
2、翻译每个单词的摩斯码
3、利用stl关联容器统计翻译次数
代码:
//by me
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
vector<string> line{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
vector<string> translate;
string tran;
for(auto v:words)//v是string
{
tran.clear();
for(auto p:v)//p是单个字符,v是单个词语
tran+=line[p-'a'];//逐字母翻译摩尔斯码、并组合成摩尔斯词
int flag=0;//找到标志;
for (auto check:translate){//在translatel里面寻找是已经有过值
if (check==tran) {
flag=1;
break;
}
}
if (flag==0) {
translate.push_back(tran);
}
}
return translate.size();
}
};
讨论区精品代码:
//by me
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
vector<string> line{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
vector<string> translate;
string tran;
for(auto v:words)//v是string
{
tran.clear();
for(auto p:v)//p是单个字符,v是单个词语
tran+=line[p-'a'];//逐字母翻译摩尔斯码、并组合成摩尔斯词
int flag=0;//找到标志;
for (auto check:translate){//在translatel里面寻找是已经有过值
if (check==tran) {
flag=1;
break;
}
}
if (flag==0) {
translate.push_back(tran);
}
}
return translate.size();
}
};

浙公网安备 33010602011771号