1. 程式人生 > 其它 >YbtOJ 字串處理課堂過關 例3 單詞替換【bfs】

YbtOJ 字串處理課堂過關 例3 單詞替換【bfs】

技術標籤:題解YbtOJ專項練習題字串字串YbtOJ題解

題目

在這裡插入圖片描述


思路

這道題直接模擬即可,有兩個字串操作需要注意:
比如有兩個字串 s , s s s,ss s,ss

  1. 刪除 s . e r a s e ( s.erase( s.erase( 起始位置 , , , 往後刪幾個位置 ) ) )
  2. 插入 s . i n s e r t ( s.insert( s.insert( 起始位置 , s s ) ,ss) ss)

程式碼

/==============/

由於資料問題,此程式在Ybtoj只能得九十分。
但是在原題上此程式能通過所有點。

/==============/

#include
<iostream>
#include<cstring> #include<string> #include<cmath> using namespace std; string s,ss,newi; int main() { getline(cin,s); cin>>ss>>newi; for(int i=0; i<=s.size()-1; i++) { if(ss[0]==s[i]) { int js=0,j=i; while(ss[js]==s[j]&&js<
ss.size()&&j<s.size()) js++,j++; if(js==ss.size()&&(s[j]==' '||j==s.size())&&(s[i-1]==' '||i==0)) s.erase(i,ss.size()),s.insert(i,newi); } } cout<<s; return 0; }