我的码字思路——BFS
题面链接:洛谷;
下面就一点点讲
(1)读入
有点坑,我用了while:
while(cin>>From[++N]>>To[N]){
Size_From[N]=From[N].size();
Size_To[N]=To[N].size();
}
但这样你自己是无法测试的(计算机会让你无休止地输入),所以在测试样例的时候,,我是直接用for循环三边的(样例有三个规则):
/*
while(cin>>From[++N]>>To[N]){
Size_From[N]=From[N].size();
Size_To[N]=To[N].size();
}
*/
N=3;
for(register int i=1;i<=N;i++){
cin>>From[i]>>To[i];
Size_From[i]=From[i].size();
Size_To[i]=To[i].size();
}//完美应付样例
(2)如何判断在一个字符串中含有一个我们想要的子串
写一个子程序,功能是判断在Str1中是否含有Str2(含有代表可以进行该操作);
这个因该是比较简单的,直接循环暴力枚举,代码如下:
bool Judge(string String1,string String2){
bool Return=true;
unsigned int Size_String1=String1.size();
unsigned int Size_String2=String2.size();
for(register int i=0;i+Size_String2<=Size_String1;i++){
for(register int j=i;j<i+Size_String2;j++){
if(String1[j]!=String2[j-i]){
Return=false;
break;
}
}
if(Return==true){
return true;
}Return=true;
}
return false;
}
但这里有个坑点——有时候在一个字符串中含