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     }
  • 相关阅读:
    qbzt day6 上午
    qbzt day5 下午
    qbzt day5 上午
    【7.24校内交流赛】T3【qbxt】复读警告
    【7.24校内交流赛】T1&T2
    一个一定要好好提溜出来的贪心题
    7.19 讲题
    DP大大大大大赏
    图论经典例题大赏
    数据结构题大赏
  • 原文地址:https://www.cnblogs.com/boring09/p/4251793.html
Copyright © 2011-2022 走看看