本文主要是介绍leetcode_804_唯一摩尔斯密码词,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a"
对应 ".-"
, "b"
对应 "-..."
, "c"
对应 "-.-."
, 等等。
为了方便,所有26个英文字母对应摩尔斯密码表如下:
[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
给定一个单词列表,每个单词可以写成每个字母对应摩尔斯密码的组合。例如,"cab" 可以写成 "-.-.-....-",(即 "-.-." + "-..." + ".-"字符串的结合)。我们将这样一个连接过程称作单词翻译。
返回我们可以获得所有词不同单词翻译的数量。
例如:
输入: words = ["gin", "zen", "gig", "msg"]
输出: 2
解释:
各单词翻译如下:
"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."共有 2 种不同翻译, "--...-." 和 "--...--.".
class Solution {
public:int uniqueMorseRepresentations(vector<string>& words) {string keys[] = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};set<string> res;for(int i = 0;i<words.size();i++){ string current = words[i];string temp = ""; for (int j=0;j<current.length();j++){temp = temp + keys[current[j]-'a'];}res.insert(temp);}return res.size();}
};
set是一个不会有重复值的数据类型,很适合需要去重的题
这篇关于leetcode_804_唯一摩尔斯密码词的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!