怎么添加网站背景音乐,定制建站,谷歌推广seo,在哪里可以免费自学seo课程1、题目
国际摩尔斯密码定义一种标准编码方式#xff0c;将每个字母对应于一个由一系列点和短线组成的字符串#xff0c; 比如:
‘a’ 对应 “.-” #xff0c; ‘b’ 对应 “-…” #xff0c; ‘c’ 对应 “-.-.” #xff0c;以此类推。 为了方便#xff0c;所有 26…1、题目
国际摩尔斯密码定义一种标准编码方式将每个字母对应于一个由一系列点和短线组成的字符串 比如:
‘a’ 对应 “.-” ‘b’ 对应 “-…” ‘c’ 对应 “-.-.” 以此类推。 为了方便所有 26 个英文字母的摩尔斯密码表如下
[“.-”,“-…”,“-.-.”,“-…”,“.”,“…-.”,“–.”,“…”,“…”,“.—”,“-.-”,“.-…”,“–”,“-.”,“—”,“.–.”,“–.-”,“.-.”,“…”,“-”,“…-”,“…-”,“.–”,“-…-”,“-.–”,“–…”] 给你一个字符串数组 words 每个单词可以写成每个字母对应摩尔斯密码的组合。
例如“cab” 可以写成 “-.-…–…” (即 “-.-.” “.-” “-…” 字符串的结合)。我们将这样一个连接过程称作 单词翻译 。 对 words 中所有单词进行单词翻译返回不同 单词翻译 的数量。
示例 1
输入: words [“gin”, “zen”, “gig”, “msg”] 输出: 2 解释: 各单词翻译如下: “gin” - “–…-.” “zen” - “–…-.” “gig” - “–…–.” “msg” - “–…–.”
共有 2 种不同翻译, “–…-.” 和 “–…–.”. 示例 2
输入words [“a”] 输出1
提示
1 words.length 100 1 words[i].length 12 words[i] 由小写英文字母组成
2、解
首先通过map将字母表与morse密码进行映射再对words进行遍历并通过map进行存储最后map.size()即为答案。 int uniqueMorseRepresentations(vectorstring words){vectorstring morse {.-,-...,-.-.,-..,.,..-.,--.,....,..,.---,-.-,.-..,--,-.,---,.--.,--.-,.-.,...,-,..-,...-,.--,-..-,-.--,--..};unordered_mapchar, string morseWords;for(int i 0; i 26; i ){morseWords[i a] morse[i];}unordered_mapstring, int result;for(auto word : words){string temp ;for(auto w : word){temp.append(morseWords[w]);}result[temp];}return result.size();}改进 博主最初通过map对字母与密码进行映射其实完全没必要遍历words的word时对word的每个字母进行-‘a’操作得到索引值即可对应为morse数组中的对应string密码同时直接通过set来存储不需要计数各个元素的出现次数并将morse数组定义为固定内存空间const static 。
const static string morse[26] {.-,-...,-.-.,-..,.,..-.,--.,....,..,.---,-.-,.-..,--,-.,---,.--.,--.-,.-.,...,-,..-,...-,.--,-..-,-.--,--..};class Solution {
public:int uniqueMorseRepresentations(vectorstring words) {unordered_setstring result;for(auto word : words){string temp ;for(auto w : word){temp.append(morse[w - a]);}result.emplace(temp);}return result.size();}
};