题目大意:
有四个字符串,第三个字符串出现a的地方用第一个字符串替代,出现b的地方用第二个字符串替代,然后判断在新串中是否可以找到目标字串(第四个字符串),如果可以找到的话就输出YES,否则输出no。
思路:
本来就是想说先将新串给存在一个string中然后用string的find函数查找字串,可是wa了。。
include
using namespace std;
include
include
string a,b,c,d,e;
bool flag;
int main() {
int i;
while(cin >> a) {
// memset(a,'\0',sizeof(a));
// scanf("%s",&a[1]);
// scanf("%s",&a[2]);
// scanf("%s",&a[3]);
// cout << 1<<endl;
// cin >> a;
cin >> b;
cin >> c;
cin >> d;
e = “”;
// printf(“1”);
// cout << b <
AC代码思路:
开始的串如果大于目标串的长度的话也需要判断,可能开始的串中就包含了目标字串。
用队列保存已经替换过的串,如果找到目标就停止。否则就循环进行。
AC代码:
include
include
include
include
using namespace std;
string a;
string b;
string beg;
string target;
string s,s1;
bool ok;
queue q;
map