当前位置: 首页 > article >正文

804 唯一摩斯密码词

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

  • 'a' 对应 ".-" ,
  • 'b' 对应 "-..." ,
  • 'c' 对应 "-.-." ,以此类推。

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

[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

给你一个字符串数组 words ,每个单词可以写成每个字母对应摩尔斯密码的组合。

#include <bits/stdc++.h>
using namespace std;
//将字母对应的摩斯密码存储在字符串中
string morse[]={
        ".-", "-...", "-.-.", "-..", ".", "..-.", "--.",
        "....", "..", ".---", "-.-", ".-..", "--", "-.",
        "---", ".--.", "--.-", ".-.", "...", "-", "..-",
        "...-", ".--", "-..-", "-.--", "--.."
};

class Solution {
public:
    int uniqueMorseRepresentations(vector<string>& words) {
        //定义string型 去重的set来保存翻译后的摩斯密码
        unordered_set<string> seen;
        //遍历字符串数组words
        for(auto i=0;i<words.size();i++){
            //翻译后的字符
			string code;
            //遍历字符串数组的每个字符的每个字母
			for(auto j=0;j<words[i].length();j++){
                //将每个字母对应的摩斯密码加入code中
				code.append(morse[words[i][j]-'a']);
			}
            //将code中保存的当前字符对应摩斯密码加入到seen字符串中
			seen.insert(code);
		}
        //返回字符串大小(unordered_set自动去重)
		return seen.size();
    }	
};


http://www.kler.cn/a/561781.html

相关文章:

  • 【leetcode hot 100 1】两数之和
  • 钉钉合同审批对接腾讯电子签,实现合同全流程自动化管理
  • 【删边问题——Tarjan求割边】
  • 宿主机的 root 是否等于 Docker 容器的 root?
  • Ajax数据采集与分析详解
  • 开源分布式存储系统在云原生数据库领域的实践与应用
  • 自定义提交按钮触发avue-form绑定的submit事件
  • AI前端开发:ScriptEcho如何降低编程培训学习成本
  • python绑定udp时使用127.0.0.1作为ip,无法sendto,报错Invalid argument
  • 无限宽度神经网络的神经正切核(Neural Tangent Kernel, NTK)
  • 多线程进阶 : 八股文面试题 一 [Java EE 多线程 锁和死锁相关问题]
  • vscode设置自动换行
  • 【WordPress】发布文章时自动通过机器人推送到钉钉
  • Pi币今日成交价格飙升,XBIT去中心化交易所助力新浪潮
  • MySQL知识
  • vue3.0将后端返回的word文件流转换为pdf并导出+html2pdf.js将页面导出为pdf
  • keil中出现Error_Handler错误的解决方法
  • 云计算模型和边缘计算模型
  • ubuntu 源码编译ffmpeg
  • 【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter23-JSON