不要管为什么我连红题都要问
这份代码是 70 分:
#include <bits/stdc++.h>
using namespace std;
int n;
string name[1005];
string xh[1005];
int cnt[1005];
int main()
{
// freopen("save.in","r",stdin);
// freopen("save.out","w",stdout);
cin>>n;
int imax=0;
for(int i=1;i<=n;i++)
{
cin>>name[i];
cin>>xh[i];
for(int j=0;j<xh[i].size()-2;j++)
{
if(xh[i][j]=='s'&&xh[i][j+1]=='o'&&xh[i][j+2]=='s')
{
cnt[i]++;
}
}
imax=max(imax,cnt[i]);
}
for(int i=1;i<=n;i++)
{
if(cnt[i]==imax)
cout<<name[i]<<' ';
}
cout<<'\n';
cout<<imax;
return 0;
}
而这份代码能过:
#include <bits/stdc++.h>
using namespace std;
int n;
string name[1005];
string xh[1005];
int cnt[1005];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
// freopen("save.in","r",stdin);
// freopen("save.out","w",stdout);
cin>>n;
int imax=0;
for(int i=1;i<=n;i++)
{
cin>>name[i];
cin>>xh[i];
int len=xh[i].size();
for(int j=0;j<len-2;j++)
{
if(xh[i][j]=='s'&&xh[i][j+1]=='o'&&xh[i][j+2]=='s')
{
cnt[i]++;
}
}
imax=max(imax,cnt[i]);
}
for(int i=1;i<=n;i++)
{
if(cnt[i]==imax)
cout<<name[i]<<' ';
}
cout<<'\n';
cout<<imax;
return 0;
}
差异仅仅是第一份枚举的部分的 xh[i].size()-2 在第二份代码里用 len 来存了而已,他们有什么区别吗?