zoukankan      html  css  js  c++  java
  • [LeetCode 题解]: Anagrams

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

    Note: All inputs will be in lower-case.

    题解: 判断字符串是否为回文构词法生成的。找出所有由同一回文构词法生成的字符串对。

    使用map用于散列。 将strs中的字符串strs[i],在串内进行字典排序,生成key,原始s[i]不变。 将该字符串s[i]映射到key所对应位置。map[key].push_back(str[i]).

    依次对字符串数组进行散列。

    最后遍历map, 按照字典序将key挂载字符串大于1的位置元素输出到结果vector中。

     1 class Solution {
     2 public:
     3     vector<string> anagrams(vector<string> &strs) {
     4         int i;
     5         map<string, vector<string> > vset;
     6         for(i=0;i<strs.size();i++)
     7         {
     8             string key = strs[i];
     9             sort(key.begin(),key.end());
    10             vset[key].push_back(strs[i]);
    11         }
    12         vector<string> result;
    13         map<string, vector<string> >::iterator iter;
    14         for(iter = vset.begin();iter!=vset.end(); iter++)
    15         {
    16             if(iter->second.size()>1)
    17             {
    18                 vector<string>::iterator viter;
    19                 for(viter=iter->second.begin(); viter!=iter->second.end();viter++)
    20                     result.push_back(*viter);
    21             }
    22         }
    23         return result;        
    24     }
    25 };

    转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢。

  • 相关阅读:
    mongodb数据库shell
    PLINK pca
    xgboost 安装
    tensorflow之损失函数
    php,mysql存储过程的简单例子
    ECharts初体验
    mysql常用连接查询
    php流程控制
    php循环
    高效率php注意事项
  • 原文地址:https://www.cnblogs.com/double-win/p/3782211.html
Copyright © 2011-2022 走看看