804.唯一摩尔斯密码词

题目:[https://leetcode-cn.com/problems/unique-morse-code-words/description/]
思路:1、初始化莫斯代码表,字母表
2、翻译每个单词的摩斯码
3、利用stl关联容器统计翻译次数

代码:

//by me
class Solution {
public:
    int uniqueMorseRepresentations(vector<string>& words) {
        vector<string> line{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
        vector<string> translate;
        string tran;
        for(auto v:words)//v是string
        {
            tran.clear();
            for(auto p:v)//p是单个字符,v是单个词语
                tran+=line[p-'a'];//逐字母翻译摩尔斯码、并组合成摩尔斯词
            int flag=0;//找到标志;
            for (auto check:translate){//在translatel里面寻找是已经有过值
                if (check==tran) {
                    flag=1;
                    break;
                }
            }
            if (flag==0) {
                translate.push_back(tran);
            }
        }
        return translate.size();
    }
};

讨论区精品代码:

//by me
class Solution {
public:
    int uniqueMorseRepresentations(vector<string>& words) {
        vector<string> line{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
        vector<string> translate;
        string tran;
        for(auto v:words)//v是string
        {
            tran.clear();
            for(auto p:v)//p是单个字符,v是单个词语
                tran+=line[p-'a'];//逐字母翻译摩尔斯码、并组合成摩尔斯词
            int flag=0;//找到标志;
            for (auto check:translate){//在translatel里面寻找是已经有过值
                if (check==tran) {
                    flag=1;
                    break;
                }
            }
            if (flag==0) {
                translate.push_back(tran);
            }
        }
        return translate.size();
    }
};
posted @ 2018-10-11 23:23  Kipper  阅读(209)  评论(0)    收藏  举报