问题是字符串向量中的所有字谜组。 我在C ++中使用sort函数为它编写了代码,但是我遇到了运行时错误而且我不知道出了什么问题。你能帮帮我吗?谢谢!
我的代码:
bool comp(string s1, string s2){
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
return (s1<=s2);
}
vector<string> anagrams(vector<string> &strs) {
if(strs.size()==0 || strs.size()==1) return strs;
sort(strs.begin(), strs.end(), comp);
}
答案 0 :(得分:1)
当anagrams
的向量参数的大小大于1时,即使它被声明为返回向量,也不会从函数中返回任何内容。
这是未定义的行为,可能是崩溃的原因。
在您对输入进行排序时,您不需要从函数中返回任何内容。
答案 1 :(得分:0)
首先,在函数comp
中应该有s1 < s2
而不是s1 <= s2
bool comp(string s1, string s2){
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
return (s1 < s2);
}
功能字谜应定义为
void anagrams(vector<string> &strs) {
sort(strs.begin(), strs.end(), comp);
}