zoukankan      html  css  js  c++  java
  • [leetcode] Anagrams

    Anagrams

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

    Note: All inputs will be in lower-case.
     

    anagrams特点:单词里的字母的种类和数目是一样的,只是改变了字母的排列顺序。

     1 class Solution
     2 {
     3 public:
     4   vector<string> anagrams(vector<string> &strs)
     5   {
     6     vector<string> ret;
     7     vector<string> sort_strs(strs);
     8     map<string, vector<int> > mymap;
     9     map<string, vector<int> >::iterator it;
    10 
    11     for(int i=0; i<strs.size(); i++)
    12     {
    13       sort(sort_strs[i].begin(), sort_strs[i].end());     //对字符串进行排序,使得属于同一类回文构词的词具有相同的字符串。
    14       mymap[sort_strs[i]].push_back(i);                   //利用map不会插入同一主键的原则,统计字符串种类数,并记录字符串在原始strs中的位置。
    15     }
    16 
    17     for(it=mymap.begin(); it!=mymap.end(); it++)   //遍历统计结果
    18     {
    19       if((*it).second.size()>1)     //字符串出现的次数为两次以上,则它所对应的原始字符串符合题目要求。
    20       {
    21         for(int i=0; i<(*it).second.size(); i++)   //遍历该排序字符串出现在strs中的位置,得到原始字符串,压入ret。
    22           ret.push_back(strs[(*it).second[i]]);
    23       }
    24     }
    25 
    26     return ret;
    27   }
    28 };
  • 相关阅读:
    施密特触发器
    51单片机独立键盘原理
    51单片机独立键盘原理
    hdu3085 Nightmare Ⅱ
    hdu3085 Nightmare Ⅱ
    复制一颗二叉树
    复制一颗二叉树
    判断一颗二叉树是不是完全二叉树
    判断一颗二叉树是不是完全二叉树
    求二叉树的深度及每一个节点的深度
  • 原文地址:https://www.cnblogs.com/lxd2502/p/4246072.html
Copyright © 2011-2022 走看看