由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请问我写的这个代码哪可以改进一下
相关主题
问个anagram的问题LC: anagram为何忽略single element?
LC anagrams题目有问题吧?一道有关String的面试题
问一个Anagram的参考程序facebook telephone interview from careercup
F家电面:group Anagramscareercup 150一题。 9.2
问一下OJ的Anagrams那道题问个简单的问题...
杯具!越改越差奉献phone screen真题两枚
何解?问一个anagram的题
一道G家店面题问一个 String array sorting 的题。
相关话题的讨论汇总
话题: int话题: strs话题: mycode话题: string话题: mymap
进入JobHunting版参与讨论
1 (共1页)
g***j
发帖数: 1275
1
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
上面大小测试集都过了,但是总感觉有问题,至少感觉很臃肿,请问我写的这个代码哪
可以改进一下?
int getHashcode(string s) {

int code = 2166136261U;

sort(s.begin(), s.end());

for(int i = 0 ; i < s.length(); i++) {
code = code ^ (s[i]);
code = code * 16777619;
}

return code;
}
class Solution {
public:
vector anagrams(vector &strs) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector results;

if(strs.size() <= 1) return results;

map myMap;

map myCode;
for(int i = 0; i < strs.size(); i++) {
myCode[strs[i]] = getHashcode(strs[i]);
}
for(int i = 0; i < strs.size(); i++) {
myMap[myCode[strs[i]]] = 0;
}

for(int i = 0; i < strs.size(); i++) {
myMap[myCode[strs[i]]]++;
}

for(int i = 0; i < strs.size(); i++) {
if(myMap[myCode[strs[i]]] > 1 ) {
results.push_back(strs[i]);
}
}

return results;

}
};
r*****s
发帖数: 74
2
code = code ^ (s[i]);
code = code * 16777619;
=>
code ^= s[i];
code *= 16777619;
能省几个字符……
g***j
发帖数: 1275
3
what about the body? I used four loops, any way to reduce some?
and also I used two maps, is one enough?

【在 r*****s 的大作中提到】
: code = code ^ (s[i]);
: code = code * 16777619;
: =>
: code ^= s[i];
: code *= 16777619;
: 能省几个字符……

r**h
发帖数: 1288
4
用一个multimap
左边是一个string,右边是对应的字符串的index
因为所有anagram,他们sort后的字符串都是一样的。
第一轮loop,sort每个string,按照sort的结果加入到multimap里
第二轮遍历multimap,输出字符串
multimap mmp;
multimap::iterator it;
vector results;
string tmp;
for(int i=0; i tmp = strs[i];
sort(tmp.begin(), tmp.end());
mmp.insert(std::pair(tmp, i));
}
for(it=mmp.begin(); it!=mmp.end(); it++){
results.push_back(strs[(*it).second]);
}
return results;
1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个 String array sorting 的题。问一下OJ的Anagrams那道题
关于leetcode的Scramble String问题杯具!越改越差
菜鸟的问题:Given a string, find whether it has any permutation of another string何解?
仅存onsite一只。。。散尽家财求bless一道G家店面题
问个anagram的问题LC: anagram为何忽略single element?
LC anagrams题目有问题吧?一道有关String的面试题
问一个Anagram的参考程序facebook telephone interview from careercup
F家电面:group Anagramscareercup 150一题。 9.2
相关话题的讨论汇总
话题: int话题: strs话题: mycode话题: string话题: mymap