我正在做一个函数来比较两个字符串向量是否是彼此的排列。我正在尝试下一个应该工作的代码,但由于某种原因,来自C ++的算法库的sort函数不起作用。
bool esPermutacion(vector <string> s1, vector <string> s2){
if (s1.size() == s2.size()){
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
return s1 == s2;
}
return false;
}
int main(){
vector <string> s1;
string s = "";
vector <string> s2;
cin >> s;
s1.push_back(s);
cin >> s;
s2.push_back(s);
cout << esPermutacion(s1, s2) << endl;
return 0;
}
任何帮助都将不胜感激。
编辑:
如果我试试这个:
bool esPermutacion(vector <string> s1, vector <string> s2){
if (s1.size() == s2.size()){
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
for (int i = 0; i < s1.size(); i++){
cout << s1[i];
}
cout << endl;
for (int i = 0; i < s2.size(); i++){
cout << s2[i];
}
cout << endl;
return s1 == s2;
}
return false;
}
我可以看到排序功能不起作用
答案:
bool esPermutacion(string s1,string s2){
if (s1.size() == s2.size()){
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
return s1 == s2;
}
return false;
}
int main(){
string s1 = "";
string s2 = "";
cin >> s1;
cin >> s2;
cout << esPermutacion(s1, s2) << endl;
return 0;
}
现在正在运作。谢谢大家!
答案 0 :(得分:3)
我正在做一个函数来比较两个字符串向量是否是彼此的排列
你确实这样做了,而且它运作正常。
但是你的示例输入很明显你实际上想要别的东西:你实际上想要比较如果两个字符串是彼此的排列,而不是两个字符串的矢量
问题在于:不在代码中,而是在规范中。