【Leetcode】Anagrams

原创 2013年12月05日 19:37:45

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

题意:给你一个字符串数组,返回所有变位字符串的集合(变位字符串的意思是两个字符串包含的字符类型和各个字符出现的次数均相等)。

解题思路:1)对数组的每个字符串先进行排序,然后用关联容器map存储每个字符串。

2)如果当前的字符串不存在于map中,将排序的当前字符串作为key(键值)存储到map中,并将value置为字符串在数组中的位置。

3)如果存在于map中,若之前的字符串尚未保存到result中,则先将之前的字符串存进result中,然后再存储当前的字符串。需要注意的是,需要在数组中查找字符串进行存储,而不是直接将排序后的字符串进行存储。

class Solution {
public:
    vector<string> anagrams(vector<string> &strs) {
        map<string,int> m;
        vector<string> result;
        unsigned int len=strs.size();
        for(unsigned int i=0;i<len;i++)
        {
            string a=strs[i];
            sort(a.begin(),a.end());
            if(m.find(a)==m.end())   //a不存在于m中
            {
                m[a]=i;
            }
            else                  //a存在于m中
            {
                int index=m[a];
                if(index>=0)
                {
                    result.push_back(strs[index]);
                    m[a]=-1;
                }
                result.push_back(strs[i]);
            }            
        }
        return result;
    }
};


相关文章推荐

【LeetCode】49. Group Anagrams

【LeetCode】49. Group Anagrams

Leetcode Find All Anagrams in a String

题意:找到字符串中所有可以重排列得到目标串的字串位置。 思路:记录目标串中各字母出现的次数,枚举字符串中每一个字母。 class Solution { public: Solution(...
  • markpen
  • markpen
  • 2017年01月01日 05:46
  • 88

leetcode 49. Group Anagrams(哈希,字典序)

题目大意:把一个字符串数组按字母组成的不同分到几个字符串数组,把每个字符串数组按字典序排序 解题方法:先用HashMap类对字符串数组哈希,再把每个字符串数组进行字典序排序 要      点: ...

LeetCode 49. Group Anagrams(分组同构异形词)

原题网址:https://leetcode.com/problems/anagrams/ Given an array of strings, group anagrams together. ...
  • jmspan
  • jmspan
  • 2016年05月21日 06:11
  • 555

LeetCode | 49. Group Anagrams

Given an array of strings, group anagrams together.For example, given: ["eat", "tea", "tan", "ate", ...

Leetcode 49. Group Anagrams & 242. Valid Anagram

49. Group Anagrams Given an array of strings, group anagrams together. For example, gi...

LeetCode Group Anagrams

题目: Given an array of strings, group anagrams together. For example, given: ["eat", "tea", "tan"...

leetcode题解-49. Group Anagrams

题目:Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate...

LeetCode OJ-49.Group Anagrams

LeetCode OJ-49.Group Anagrams题目描述 Given an array of strings, group anagrams together. For exa...

Anagrams--LeetCode

题目: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs w...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Leetcode】Anagrams
举报原因:
原因补充:

(最多只允许输入30个字)