这段代码有什么问题?执行后没有显示任何输出
what is wrong with this code ? it's not showing any output after executing
该函数必须 return 一个整数数组,表示每个查询字符串在字符串中出现的频率。
matchingStrings 具有以下参数:
string strings[n] - 要搜索的字符串数组
字符串查询[q] - 查询字符串数组
例子
strings[]={"ab","ab","abc"}
queries[]={"ab","abc","bc"}
输出将是
result[]={2,1,0}
.
vector<int> matchingStrings(vector<string> strings, vector<string> queries) {
unordered_multiset<string> m;
int ms=0,l=sizeof(strings)/sizeof(strings[0]),k=sizeof(queries)/sizeof(queries[0]);
vector<int> res;
int y;
for(int i=0;i<l;i++)
{
m.insert(strings[i]);
}
for(int j=0;j<k;j++)
{
y=(m.count(queries[j]));
res.push_back(y);
}
return res;
}
您输入向量的大小错误,它们在编译时与 sizeof
运算符保持一致。像这样获取他们的 sizes/lengths:
int ms = 0;
std::size_t l = strings.size(), k = queries.size();
该代码有效。我不知道你为什么不在 vector 中使用 size() 方法。
#include <bits/stdc++.h>
using namespace std;
vector<int> matchingStrings(vector<string> strings, vector<string> queries) {
unordered_multiset<string> m;
int ms=0;
vector<int> res;
int y;
for(int i=0;i<strings.size();i++)
{
m.insert(strings[i]);
}
for(int j=0;j<queries.size();j++)
{
y=(m.count(queries[j]));
res.push_back(y);
}
return res;
}
int main() {
vector <string> strings;
vector <string> queries;
strings.push_back("ab");
strings.push_back("ab");
strings.push_back("abc");
queries.push_back("ab");
queries.push_back("abc");
queries.push_back("bc");
for(int item : matchingStrings(strings,queries)){
cout<<item<<' ';
}
}
该函数必须 return 一个整数数组,表示每个查询字符串在字符串中出现的频率。
matchingStrings 具有以下参数:
string strings[n] - 要搜索的字符串数组 字符串查询[q] - 查询字符串数组
例子
strings[]={"ab","ab","abc"}
queries[]={"ab","abc","bc"}
输出将是
result[]={2,1,0}
.
vector<int> matchingStrings(vector<string> strings, vector<string> queries) {
unordered_multiset<string> m;
int ms=0,l=sizeof(strings)/sizeof(strings[0]),k=sizeof(queries)/sizeof(queries[0]);
vector<int> res;
int y;
for(int i=0;i<l;i++)
{
m.insert(strings[i]);
}
for(int j=0;j<k;j++)
{
y=(m.count(queries[j]));
res.push_back(y);
}
return res;
}
您输入向量的大小错误,它们在编译时与 sizeof
运算符保持一致。像这样获取他们的 sizes/lengths:
int ms = 0;
std::size_t l = strings.size(), k = queries.size();
该代码有效。我不知道你为什么不在 vector 中使用 size() 方法。
#include <bits/stdc++.h>
using namespace std;
vector<int> matchingStrings(vector<string> strings, vector<string> queries) {
unordered_multiset<string> m;
int ms=0;
vector<int> res;
int y;
for(int i=0;i<strings.size();i++)
{
m.insert(strings[i]);
}
for(int j=0;j<queries.size();j++)
{
y=(m.count(queries[j]));
res.push_back(y);
}
return res;
}
int main() {
vector <string> strings;
vector <string> queries;
strings.push_back("ab");
strings.push_back("ab");
strings.push_back("abc");
queries.push_back("ab");
queries.push_back("abc");
queries.push_back("bc");
for(int item : matchingStrings(strings,queries)){
cout<<item<<' ';
}
}