-1
我在Leetcode OJ上做了「按頻率排序字符」問題。 任何人都可以向我解釋爲什麼會發生這種情況?爲什麼超出內存限制?
class Solution {
public:
struct Node {
int freq;
char ch;
};
static bool lambda(struct Node a, struct Node b){
return a.freq>b.freq;
}
string frequencySort(string s) {
if(s.size() == 0)
return "";
string res = "";
vector<Node> nums(256);
for(char c : s){
nums[(int)c].ch = c;
nums[(int)c].freq++;
}
std::sort(nums.begin(), nums.end(), Solution::lambda);
char c;
for(int i=0; nums[i].freq > 0; i++){
c = nums[i].ch;
while(nums[i].freq--){
res = res + c; // If I replace this line with res += c, it gets Accepted!
}
}
return res;
}
};
我們需要足夠的代碼來複制問題。 –
你瞭解'res = res + c;'和'res + = c;'的區別嗎? –
更多信息。 – Sean83