zoukankan      html  css  js  c++  java
  • Leetcode#49 Anagrams

    原题地址

    Anagram:变位词。两个单词是变位词关系的条件是:组成单词的字符相同,只是顺序不同

    第一次看这道题看了半天没明白要干嘛,丫就不能给个样例输入输出么。。后来还是看网上其他人的总结知道是怎么回事。

    通常的做法是:把字符串内的字符排序,这样,凡是变位词都会变成相同的单词。用map记录这样的单词出现了几个,如果超过1个,则加入结果集中。

    代码:

     1 vector<string> anagrams(vector<string> &strs) {
     2         vector<string> res;
     3         map<string, int> record;
     4         
     5         for (int i = 0; i < strs.size(); i++) {
     6             string tmp = strs[i];
     7             sort(tmp.begin(), tmp.end());
     8             map<string, int>::iterator it = record.find(tmp);
     9             if (it == record.end())
    10                 record.insert(pair<string, int>(tmp, 1));
    11             else 
    12                 it->second++;
    13         }
    14         
    15         for (int i = 0; i < strs.size(); i++) {
    16             string tmp = strs[i];
    17             sort(tmp.begin(), tmp.end());
    18             map<string, int>::iterator it = record.find(tmp);
    19             if (it->second > 1)
    20                 res.push_back(strs[i]);
    21         }
    22         
    23         return res;
    24     }
  • 相关阅读:
    swift制作framework过程
    Redis学习
    Mysql vs NoSql vs NewSql
    Mysql实践
    跨库分页解决方案[转]
    二分查找解题套路框架 [转]
    Service Mesh [转]
    Golang Case
    [转]分布式服务限流
    保险
  • 原文地址:https://www.cnblogs.com/boring09/p/4251793.html
Copyright © 2011-2022 走看看