zoukankan      html  css  js  c++  java
  • 面试题 10.02. 变位词组 力扣(中等) 字符串排序sort(string)

    题目描述:

    编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。

    注意:本题相对原题稍作修改

    示例:

    输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
    输出:
    [
    ["ate","eat","tea"],
    ["nat","tan"],
    ["bat"]
    ]

    题源:https://leetcode-cn.com/problems/group-anagrams-lcci/

    题解:

    一个朴素的想法是根据题意进行模拟,对每个字符串进行排序作为 key,从而实现相同的「变位词」对应同一个 key,使用哈希表进行统计即可。

    学习要点:

    对string类型的字符串排序,可以用sort(string.begin(), string.end() );

    代码:

    class Solution {
    public:
        vector<vector<string>> groupAnagrams(vector<string>& strs) {
        map<string,vector<string>> mp;
        for(auto i : strs)
        {
            string s=i;
            sort(s.begin(),s.end());
            mp[s].push_back(i);
        }
        vector<vector<string>> res;
        for(auto i:mp)
            res.push_back(i.second);
        return res;
        }
    };
  • 相关阅读:
    Java第一次作业
    第十一次作业
    第十次作业
    第九次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    Java23种设计模式
    第三次作业
  • 原文地址:https://www.cnblogs.com/stepping/p/15027138.html
Copyright © 2011-2022 走看看