#include <iostream>
#include <map>
#include <string>
using namespace std;
class MorseCode {
map<string, string> morse;
public:
MorseCode() {
morse.emplace(".-", "A");
morse.emplace("-...", "B");
morse.emplace("-.-.", "C");
morse.emplace("-..", "D");
morse.emplace(".", "E");
morse.emplace("..-.", "F");
morse.emplace("--.", "G");
morse.emplace("....", "H");
morse.emplace("..", "I");
morse.emplace(".---", "J");
morse.emplace("-.-", "K");
morse.emplace(".-..", "L");
morse.emplace("--", "M");
morse.emplace("-.", "N");
morse.emplace("---", "O");
morse.emplace(".--.", "P");
morse.emplace("--.-", "Q");
morse.emplace(".-.", "R");
morse.emplace("...", "S");
morse.emplace("-", "T");
morse.emplace("..-", "U");
morse.emplace("...-", "V");
morse.emplace(".--", "W");
morse.emplace("-..-", "X");
morse.emplace("-.--", "Y");
morse.emplace("--..", "Z");
}
string decode(const string &code) {
auto it = morse.find(code);
if (morse.find(code)!= morse.end()) {
return it->second;
} else {
return "?";
}
}
};
class reverseMorse:public virtual MorseCode{
};
int main() {
MorseCode m;
cout << m.decode("--") << endl; // M
cout << m.decode(".-") << endl; // A
cout << m.decode("....") << endl; // H
cout << m.decode("invalid") << endl; // ?
return 0;
}
No comments:
Post a Comment