804. 唯一摩尔斯密码词 leetcode

class Solution {
    static array<const string , 26> ops;

public:
    int uniqueMorseRepresentations(vector<string>& words) {
        unordered_set<string> pool;
        for(auto && s:words){
            string tmp = {};
            for(char c : s)
            {
                tmp.insert(tmp.size(), ops[c-'a']);

            }
            pool.emplace(move(tmp));
        }
        return pool.size();
    }
};
array<const string,26> Solution::ops={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};

常规做法

class Solution {
private:
    vector<string> encode = {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
public:
    int uniqueMorseRepresentations(vector<string>& words) {
        if(words.size() == 0) return 0;

        // set 存储
        unordered_set<string> st;

        // stringstream处理字符串
        stringstream ss;
        for(const auto& str:words){     // 遍历单词
            ss.str("");     // 清空ss
            for(const auto& c:str){     // 单词转换
                ss << encode[c-'a'];
            }
            st.emplace(ss.str());       // 加入集合
        }
        return st.size();               // 返回集合大小
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值