码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode()Group Anagrams

时间:2015-11-22 23:20:43      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

改了又改,简化了又简化,还是超时。可见必须从数组本身来进行hash运算。

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> res;
        int flag=0;
        for(int i=0;i<strs.size();i++)
        {
            for(int j=0;j<res.size();j++)
            {
          
                if(res[j][0].size()== strs[i].size() && f(res[j][0],strs[i]))
                {
                    res[j].push_back(strs[i]);
                    flag=1;
                    break;
                }
            }
            if(flag == 0)
            {
                vector<string> t;
                t.push_back(strs[i]);
                res.push_back(t);
            }
            flag=0;
        }
        return res;
    }
    bool f(string a,string b){
        int ss[26]={2 ,3 ,5 ,7 ,11 ,13, 17, 19, 23 ,29 ,31 ,37 ,41, 43, 47,53 ,59, 61, 67, 71, 73, 79, 83, 89, 97 };
        long long ra=1,rb=1;
        for(int i=0;i<a.size();i++)
        {   
            ra = ra*ss[a[i]-‘a‘];
            rb = rb*ss[b[i]-‘a‘];
        }
        return ra==rb;
    }
};

  

LeetCode()Group Anagrams

标签:

原文地址:http://www.cnblogs.com/yanqi110/p/4986922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!