Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
3632 | 邓程允 | 统计特定单词数 | C++ | Accepted | 0 MS | 264 KB | 1419 | 2024-06-22 09:36:31 |
# include<iostream> # include<cstring> using namespace std; string s1,s2; int cnt=0,pos=-1;//pos=-1代表还没找到 string lwl(string s){ int len_s=s.size(); for(int i=0;i<len_s;i++){ if(s[i]>='A'&&s[i]<='Z') s[i]=s[i]+32; } return s; } void fun(string s1,string s2){//统计s2当中包含多少个s1 int len_s1=s1.size(),len_s2=s2.size(); string ss; int i=0; for(i=0;i<len_s2;i++){ if(s2[i]!=' '){ ss=ss+s2[i]; } else{//遇到空格,表示已经统计了一个单词 if(ss==s1){ cnt++; if(pos==-1) pos=i-len_s1;//首个位置 } ss="";//重置 } } //特殊处理最后一个单词 A A A A if(ss==s1){ cnt++; if(pos==-1) pos=i-len_s1; } } void fun2(string s1,string s2){//统计s2当中包含多少个s1 //前空格,后空格代表一个单词 s1=' '+s1+' '; s2=' '+s2+' ';//文章开始和结束通常没有空格,为了匹配,也要添加 int p=s2.find(s1); pos=p; while(p!=-1){ cnt++; p=s2.find(s1,p+1); } } int main(){ getline(cin,s1); getline(cin,s2); s1=lwl(s1); s2=lwl(s2); fun2(s1,s2); if(cnt==0){ cout<<-1<<endl; } else cout<<cnt<<" "<<pos<<endl; return 0; }