80分错了#3和#5求助
  • 板块P2264 情书
  • 楼主Eason_lyx
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/19 20:08
  • 上次更新2023/11/2 12:44:23
查看原帖
80分错了#3和#5求助
930718
Eason_lyx楼主2023/10/19 20:08

上代码:

#include<bits/stdc++.h>
using namespace std;
string ci[105],s,dan;
int n,ans=0;
bool flag[105];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        cin>>ci[i];
        for(int j=0;j<ci[i].size();j++)ci[i][j]=tolower(ci[i][j]);
    }
    getline(cin,s);
    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]==',')continue;
        if(s[i]>='a'&&s[i]<='z')dan+=s[i];
        if(s[i]==' '){
            if(dan==" "){dan="";continue;}
            int id=0;
            for(int i=1;i<=n;i++)
                if(ci[i]==dan){id=i;break;}
            if(id==0){dan="";}
            else{
                flag[id]=1;
                dan="";
            }
        }
        if(s[i]=='.'){
            int id=0;
            for(int i=1;i<=n;i++)
                if(ci[i]==dan){id=i;break;}
            if(id==0){dan="";}
            else{
                flag[id]=1;
                dan="";
            }
            for(int i=1;i<=n;i++)
                if(flag[i])ans++;
            memset(flag,0,sizeof flag);
        }
    }
    printf("%d",ans);
    return 0;
}
2023/10/19 20:08
加载中...