LeetCode 唯一摩尔斯密码词 您所在的位置:网站首页 tempstr翻译 LeetCode 唯一摩尔斯密码词

LeetCode 唯一摩尔斯密码词

2023-10-03 06:03| 来源: 网络整理| 查看: 265

国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。

为了方便,所有26个英文字母对应摩尔斯密码表如下:

[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–…"] 给定一个单词列表,每个单词可以写成每个字母对应摩尔斯密码的组合。例如,“cab” 可以写成 “-.-…–…”,(即 “-.-.” + “-…” + ".-"字符串的结合)。我们将这样一个连接过程称作单词翻译。

返回我们可以获得所有词不同单词翻译的数量。

例如:

输入: words = ["gin", "zen", "gig", "msg"] 输出: 2 解释: 各单词翻译如下: "gin" -> "--...-." "zen" -> "--...-." "gig" -> "--...--." "msg" -> "--...--." 共有 2 种不同翻译, "--...-." 和 "--...--.".

注意:

单词列表words 的长度不会超过 100。 每个单词 words[i]的长度范围为 [1, 12]。 每个单词 words[i]只包含小写字母。

思 路 分 析 : \color{blue}思路分析: 思路分析:这道题是不是比较简单了,我们只要将每一个word翻译出来,然后记录种类数即可。 为计算翻译结果的种类数,本算法利用集合的元素的唯一性进行去重,这样set中得到的结果就是翻译结果种类数。

class Solution { public: int uniqueMorseRepresentations(vector& words) { //hashMap[i]代表‘a’ + i这个字母翻译后的字符串 vector hashMap = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}; unordered_set strResSet;//利用集合的元素唯一性去重,记录所有单词翻译的结果 for (auto &word : words){//逐个翻译words中所有单词 string tempStr;//翻译word这个单词后的字符串 for (auto &ch : word){//逐个翻译word的字母 tempStr += hashMap[ch - 'a']; } strResSet.insert(tempStr);//将word的翻译结果放入集合中 } return (int)strResSet.size();//返回所有翻译结果的种类数 } };

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有