1 solutions
-
0
特殊数据(20pts)
- 直接输出无解的做法
#include<bits/stdc++.h> using namespace std; int main() { cout<<-1; return 0; }
模拟(100pts)
- 先统一转化大小写,然后使用最长平台方式取出每段的单词,然后进行匹配。
#include<bits/stdc++.h> using namespace std; int main() { string s1,s2; getline(cin,s1); getline(cin,s2); int n=s1.size(); int m=s2.size(); for(int i=0;i<n;i++) //串1统一转小写 { s1[i]=tolower(s1[i]); } for(int i=0;i<m;i++) //串2统一转小写 { s2[i]=tolower(s2[i]); } int cnt=0,k=-1; //预处理答案 for(int i=0;i<m;i++) //枚举每个位置 { if(s2[i]==' ') continue; //空格继续 int j=i; while(j<m&&s2[j]!=' ') j++; j--; string s=s2.substr(i,j-i+1); //最长平台取出单词 if(s==s1) //判断相等 { cnt++; if(k==-1) //第一次出现的位置 { k=i; } } i=j; //跳到单词最后一个位置 } if(k==-1) cout<<-1; //找不到 else cout<<cnt<<" "<<k<<endl; return 0; }
- 1
Information
- ID
- 434
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 9
- Tags
- # Submissions
- 13
- Accepted
- 3
- Uploaded By