• [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/ 谢谢。

  • 相关阅读:
    用户价值和RFM模型
    产品生命周期(Product Life Circle,PLC)
    金字塔原理(Pyramid Principle)
    docker 技术
    网易实战+scrapy-redis配置
    uiautomator工具使用(7)
    adb命令行工具(6)
    Android 开发工具安装(5)
    appium 移动端自动化测试工具(4)
    mitmdump 详解(3)
  • 原文地址:https://www.cnblogs.com/double-win/p/3782211.html
Copyright © 2020-2023  润新知