//巧用字符串查找函数str.find(要找的字符或字符串) //字符串删除函数str.erase(删除位置,删除长度) //字符串插入函数str.insert(插入位置,插入什么) //我这个方法答案是对的,但如果我写成while(getline(cin,x))就说我运行超时了,不知道为什么 //您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。 #include <iostream> using namespace std; int main() { string x; getline(cin,x); x=' '+x+' ';//要在字符串前后加上空格,因为输入的测试数据中的a可能会在x中有多个重复的连续字符 string a,b;//原串里的a,用b替换 cin>>a>>b; a=' '+a+' '; b=' '+b+' '; int lena=a.size(); int find=x.find(a); while(find!=string::npos) { x.erase(find,lena).insert(find,b); find=x.find(a); } int lenx=x.size(); x=x.substr(1,lenx); cout<<x<<endl; }