题目描述:
思路:
首先把26个字母对应的摩尔斯密码写在哈希表里面;
然后把每个单词的对应的摩尔斯密码,计数,最后找出不相同种类;
代码如下:
class Solution {
public:
int uniqueMorseRepresentations(vector<string>& words) {
map<char,string>code;
map<string,int>cnt;
int sum=0;
code['a']=".-";
code['b']="-...";
code['c']="-.-.";
code['d']="-..";
code['e']=".";
code['f']="..-.";
code['g']="--.";
code['h']="....";
code['i']="..";
code['j']=".---";
code['k']="-.-";
code['l']=".-..";
code['m']="--";
code['n']="-.";
code['o']="---";
code['p']=".--.";
code['q']="--.-";
code['r']=".-.";
code['s']="...";
code['t']="-";
code['u']="..-";
code['v']="...-";
code['w']=".--";
code['x']="-..-";
code['y']="-.--";
code['z']="--..";
for(int i=0;i<words.size();i++){
string res="";
for(int j=0;j<words[i].size();j++){
res+=code[words[i][j]];
}
cnt[res]++;
if(cnt[res]==1)
sum++;
}
return sum;
}
};