P1 打倒怪獸 - Defeat the monster
unknown
c_cpp
2 years ago
1.1 kB
12
Indexable
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
using std::string;
string n, m; //n:大摩導師的咒語,m:書的內容
bool point[1000000]={0}; //記憶相似字串的開頭
int p=0; //判斷有無符合資料的(用來輸出not found)
string dic[1000000];//用來排序
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
int N=n.size();
for(int i=0; i<m.size(); ++i){
int f=0; //記錯誤次數
for(int j=0; j< N && i+j<m.size(); ++j){ // 多判斷 i+j 是否合法
if(f>1) break; //錯誤1次以上,跳出
if(n[j] != m[i+j]) ++f; //有錯
if(j==n.size()-1&&f<=1){ //咒語符合
point[i]=1;
++p;
}
}
}
if(p==0){
cout <<"Not found\n";
return 0;
}
int s=0;
for(int i=0; i<m.size(); ++i){
if(point[i]==1){
dic[s]=m.substr(i,N);
++s;
}
}
sort(dic, dic+s);
for(int i=0; i<s; ++i) cout << dic[i] << endl;
}Editor is loading...