Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
110064 | 刘轻松 | 统计特定单词数 | C++ | Accepted | 1 MS | 272 KB | 1038 | 2025-02-14 12:07:40 |
#include<bits/stdc++.h> using namespace std; string s1,s2; int main(){ getline(cin,s1); getline(cin,s2); //先全部转化为小写 for(int i=0;i<s1.size();i++){ if(s1[i]>='A'&& s1[i]<='Z'){ s1[i] = s1[i]+32; } } for(int i=0;i<s2.size();i++){ if(s2[i]>='A'&& s2[i]<='Z'){ s2[i] = s2[i]+32; } } int sum=0; //统计出现的次数 int idx=-1; //第一次出现的位置 int len1 = s1.size(); int len2 = s2.size(); int k=0; //比对的个数 int t; for(int i=0;i<len2;i++){ if(s2[i] == s1[k]){ if(k==0){ t = i; //第一个字母比对上的位置记录 } k++; if(k==len1 && (s2[i+1]==' ' || i==len2-1)){ //这个单词比完 sum++; if(idx==-1){ //说明前面没有出现过 idx = t; //记录第一次的位置 } k=0; //归零,重新比对 } } else{ k = 0; //比不上,归零下一个重新开始 } } if(sum>0){ cout<<sum<<" "<<idx<<endl; } else{ cout<<-1; } return 0; }