[804].唯一摩尔斯密码词

Posted Debroon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[804].唯一摩尔斯密码词相关的知识,希望对你有一定的参考价值。

唯一摩尔斯密码词

 


题目:https://leetcode-cn.com/problems/unique-morse-code-words/

输入: words = ["gin", "zen", "gig", "msg"]

"gin" -> "--...-."
"zen" -> "--...-."
"gig" -> "--...--."
"msg" -> "--...--."

本来应该是 4 种翻译,但俩俩相同,只有 2 种不同翻译, "--...-.""--...--.".

我们求的是不同的数量。

 


函数原型

class Solution 
public:
    int uniqueMorseRepresentations(vector<string>& words) 
       vector<string> arr = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."];
    
;

 


集合Set

思路:放入集合中,因为集合没有重复元素,最后我们只要看有多少个元素,就有多少个不同的摩尔斯密码词。

class Solution 
public:
    int uniqueMorseRepresentations(vector<string>& words) 
        set<string> st;
        vector<string> arr = ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..";
        
        for(int i=0; i<words.size(); ++i) 
            string str = "";
            for(int j=0; j<words[i].size(); ++j)
                str += arr[ words[i][j] - 'a' ];
            st.insert(str);
        
        return st.size();
    
;

 


映射Map

映射 Map 也可以称为,字典。

  • 键 : 值,根据键,快速找到值

思路同上。

class Solution 
public:
    int uniqueMorseRepresentations(vector<string>& words) 
        map<string, int> m;
        string Morse[26] = 
            ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",
            ".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",
            ".--","-..-","-.--","--.."
        ;


        for(int i = 0; i < words.size(); i++) 
            string str = "";
            for(int j = 0; j < words[i].size(); j++)
                str += Morse[ words[i][j] - 'a' ];
            m[str] ++;
        
                return m.size();       
    

以上是关于[804].唯一摩尔斯密码词的主要内容,如果未能解决你的问题,请参考以下文章

leecode练习--804唯一摩尔斯密码词

[804].唯一摩尔斯密码词

[804].唯一摩尔斯密码词

804. 唯一摩尔斯密码词

804. 唯一摩尔斯密码词python

LeetCode804. 唯一摩尔斯密码词