leetcode练习题 anagrams

解题思路

遍历字符串数组,将字符串的顺序调整为26个字母的顺序,并用一个map记录出现的次数,之后再遍历一次数组,若调整顺序后的字母出现的次数大于等于2的则将该字符串放入结果数组中,最后返回结果。

代码

class Solution {
public:
    vector<string> anagrams(vector<string> &strs) {
        map<string,int>m;
        vector<string>res;
        for(int i = 0;i < strs.size();i++){
            string tmp = strs[i];
            sort(tmp.begin(),tmp.end());
            if(m.find(tmp) == m.end())
                m[tmp] = 1;
            else
                m[tmp]++;
        }
        for(int i = 0;i < strs.size();i++){
            string tmp = strs[i];
            sort(tmp.begin(),tmp.end());
            if(m[tmp] >= 2)
                res.push_back(strs[i]);
        }
        return res;
    }
};
发布了75 篇原创文章 · 获赞 0 · 访问量 739
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览