思路:
通过字符串找出对应的摩斯密码,然后标记一下,本来用map,但是发现有问题,就改用set了
#include<iostream>
#include<cstring>
#include<vector>
#include<set>
using namespace std;
class Solution
{
public:
int uniqueMorseRepresentations(vector<string>& words)
{
string Morse[] = {".-","-...","-.-.","-..",".","..-.",
"--.","....","..",".---","-.-",".-..","--","-.","---",
".--.","--.-",".-.","...","-","..-","...-",".--","-..-",
"-.--","--.."
};
set<string> s;
int sum = 0;
string str;
for(auto w:words)
{
str = "";
for(auto c:w)
str += Morse[c-97];
s.insert(str);
}
return s.size();
}
};
int main()
{
Solution s;
vector<string> str;
str.push_back("gin");
str.push_back("zen");
str.push_back("gig");
str.push_back("msg");
// str.push_back("");
int sum = s.uniqueMorseRepresentations(str);
cout<<sum<<endl;
}