【leetcode】 Anagrams

原创 2015年07月08日 15:58:54

代码1:


#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;

class Solution
{
public:
    string fun(vector<string> str)
    {
        string a="";

        map<string,vector<string>>mp;
        cout<<str.size()<<endl;
        for(int i=0;i<str.size();i++)
        {
            string temp=str[i];
            sort(temp.begin(),temp.end());
            mp[temp].push_back(str[i]);
        }
        for(map<string,vector<string>>::iterator iter=mp.begin();iter!=mp.end();iter++)
        {
            if(iter->second.size()>1)
            {
                for(vector<string>::iterator it=iter->second.begin();it!=iter->second.end();it++)
                {
                    a+=*it;
                    a.append(1,',');

                }
            }
        }
        return a;
    }
};


class Solution2
{
public:
    string fun(vector<string> str)
    {
        string a="";

        map<string,int>mp;
        vector<string>ans;
        cout<<str.size()<<endl;
        for(int i=0;i<str.size();i++)
        {
            string temp=str[i];
            sort(temp.begin(),temp.end());
            map<string,int>::iterator iter=mp.find(temp);
            if(iter==mp.end())
            {
                mp[temp]=1;
            }
            else
                mp[temp]++;
        }
        for(int i=0;i<str.size();i++)
        {
            string temp=str[i];
            sort(temp.begin(),temp.end());
            if(mp.find(temp)!=mp.end()&&mp[temp]>1)
            {
                    a+=str[i];
                    a.append(1,',');    
            }
        }
        return a;
    }
};


void main()
{
    Solution solution2;
    string str[5]={" eat","a te","li mk","mil k","tae "};
    vector<string>s(str,str+5);
    string result;
    /*for(int i=0;i<5;i++)
        s.push_back(str[i]);*/
    result=solution2.fun(s);
    //for(vector<string>::iterator iter=result.begin();iter!=result.end();iter++)
        //cout<<*iter<<endl;
    cout<<result;

}

代码2:


#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;


class Solution2
{
public:
    string fun(vector<string> str)
    {
        string a="";

        map<string,int>mp;
        vector<string>ans;
        cout<<str.size()<<endl;
        for(int i=0;i<str.size();i++)
        {
            string temp=str[i];
            sort(temp.begin(),temp.end());
            map<string,int>::iterator iter=mp.find(temp);
            if(iter==mp.end())
            {
                mp[temp]=1;
            }
            else
                mp[temp]++;
        }
        for(int i=0;i<str.size();i++)
        {
            string temp=str[i];
            sort(temp.begin(),temp.end());
            if(mp.find(temp)!=mp.end()&&mp[temp]>1)
            {
                    a+=str[i];
                    a.append(1,',');    
            }
        }
        return a;
    }
};


void main()
{
    Solution solution2;
    string str[5]={" eat","a te","li mk","mil k","tae "};
    vector<string>s(str,str+5);
    string result;
    /*for(int i=0;i<5;i++)
        s.push_back(str[i]);*/
    result=solution2.fun(s);
    //for(vector<string>::iterator iter=result.begin();iter!=result.end();iter++)
        //cout<<*iter<<endl;
    cout<<result;

}

Leetcode: Anagrams

Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be...
  • doc_sgl
  • doc_sgl
  • 2013年10月05日 17:02
  • 6925

Anagrams -- LeetCode

原题链接: http://oj.leetcode.com/problems/anagrams/  这是一道很经典的面试题了,在cc150里面也有,就是把一个数组按照易位构词分类。易位构词其实也很好理...
  • linhuanmars
  • linhuanmars
  • 2014年03月21日 01:02
  • 16117

LeetCode(49)Group Anagrams

题目Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate”...
  • fly_yr
  • fly_yr
  • 2015年09月01日 20:28
  • 5482

LeetCode 49. Group Anagrams (Python)

题目描述: Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, ...
  • Lu_gee
  • Lu_gee
  • 2017年08月05日 19:28
  • 259

LeetCode-49-Group Anagrams(哈希)-Medium

题意理解: 将给定字符串分组,要求同一组的字符串由相同字符组成,最终,将各组字符串按字典序输出; 题目分析: 1. 将字符串先进行排序,然后通过字符串比较来判定是否为同一组; 2. 将...
  • eddy_liu
  • eddy_liu
  • 2016年01月10日 18:32
  • 2000

【leetcode】438. Find All Anagrams in a String【E】

Given a string s and a non-empty string p, find all the start indices of p's anagrams in s. Strin...
  • sscssz
  • sscssz
  • 2016年10月27日 10:53
  • 796

leetcode 438. Find All Anagrams in a String

题意: Given a string s and a non-empty string p, find all the start indices of p's anagrams in s. S...
  • shiyang6017
  • shiyang6017
  • 2016年10月23日 13:43
  • 674

leetcode:Find All Anagrams in a String 滑动窗口方法总结

今天做了几道滑动窗口的题,稍微总结一下。 起因源于早上在leetcode上pick one,随机到了一个easy的题目,想着随便做了,结果半天也找不到最优解,耗时300多ms,A是A了,不过就是暴力...
  • yy254117440
  • yy254117440
  • 2016年11月03日 20:40
  • 2918

leetcode_c++:哈希:Group Anagrams (049)

Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate”, ...
  • mijian1207mijian
  • mijian1207mijian
  • 2016年07月02日 14:06
  • 91

[leetcode] 438. Find All Anagrams in a String 解题报告

题目链接:https://leetcode.com/problems/find-all-anagrams-in-a-string/ Given a string s and a non-em...
  • qq508618087
  • qq508618087
  • 2016年10月26日 22:46
  • 2477
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【leetcode】 Anagrams
举报原因:
原因补充:

(最多只允许输入30个字)