题解 | 单词替换

#include<bits/stdc++.h>

using namespace std;

int main()
{
	string s;
	getline(cin,s);
	string a,b;
	cin>>a>>b;
	int pos = s.find(a);
	if(pos!=string::npos){
		for(int i=pos;i<s.size();)
		{
			int j = 0;
			pos = i;
			while(a[j]==s[i]){
				if(j==a.size()-1){
					if((i+1)<s.size()){
						if(s[i+1]==' '){
							s.erase(pos,a.size());
							s.insert(pos,b);
						}
					}else if(i+1==s.size()){
						s.erase(pos,a.size());
						s.insert(pos,b);
					}
				}
				j++;
				i++;
				if(j>=a.size() || i>=s.size())break;
			}
			while(1)//加速i,一个单词一个单词对比
			{
				if(i>=s.size())break;
				if(s[i]==' '){
					i++;
					break;
				}
				i++;
			}
		}
	    cout<<s;
	}
	else{
		cout<<s;
	}
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务