申请增加Hack点 P1308
  • 板块学术版
  • 楼主FPXS11GO
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/12 13:02
  • 上次更新2025/1/12 13:07:28
查看原帖
申请增加Hack点 P1308
570842
FPXS11GO楼主2025/1/12 13:02

如题,题解第一篇在如下输入数据下是错误的

question
to be or not to be is a question
#include<bits/stdc++.h>
using namespace std;
string dan,ci,s;
int cur=-1,ans;
int main()
{
    cin>>ci;
    for(int i=0;i<ci.size();++i)ci[i]=tolower(ci[i]);
    getchar();
    getline(cin,s);
    for(int i=0;i<s.size();++i)s[i]=tolower(s[i]);
    for(int i=0;i<s.size();++i)
    {
        if(s[i]==' '){
            if(dan==ci){
                ans++;
                if(cur==-1)cur=i-ci.size();
            }
            dan="";
        }
        else dan+=s[i];
    }
    if(ans==0)printf("-1");
    else printf("%d %d",ans,cur);
    return 0;
}

原因是第二行输入数据末尾没有空格,导致在程序执行中没有判断最后一个单词和所给单词是否相同

2025/1/12 13:02
加载中...