【发布时间】:2019-09-12 17:50:39
【问题描述】:
我正在练习一些来自黑客级别的问题,并陷入了这个称为稀疏数组的问题。 (https://www.hackerrank.com/challenges/sparse-arrays/problem) 我是初学者,我无法在我的代码中找出错误。请帮忙。谢谢
我认为我没有正确比较字符串。我尝试使用比较功能,但它仍然不起作用。
#include <iostream>
#include <string>
using namespace std;
int main(){
int n;
cin>>n;
string strings[n];
for(int i=0; i<n; i++){
cin>>strings[i];
}
int m;
cin>>m;
string queries[m];
for(int i=0; i<m; i++){
cin>>queries[i];
}
//comparing
for(int i=0; i<m; i++)
{
int count=0;
for(int j=0; j<n; j++)
{
if(queries[i]==strings[j])
count++;
}
cout<<count<<endl;
}
}
输出应该是(查询)中的字符串出现在(字符串)中但我的程序正在终止的次数,请帮忙。
【问题讨论】:
-
string strings[n];是高风险的。如此之高以至于它是not a part of Standard C++。给n一个适当高的值,这将使您的程序超出自动存储空间,并可能导致堆栈溢出。 -
@NeilButterworth 请建议我从那时起我应该在哪里练习,我真的很困惑并且努力学习。
-
建议:备份您的代码。然后一点一点地删除代码,直到你有一个可以编译的程序,当给定相同的输入时仍然会崩溃,并且什么都不做。通常减少坏代码周围的好代码的噪音可以更容易地发现和解决问题。
-
@YashAgrawal "请建议我从那时起应该在哪里练习"来自good C++ book。
-
@user4581301 我应该如何输入然后先生请解释是否可能。
标签: c++ arrays string sparse-matrix