【寒假每日一题】洛谷 P5734 【深基6.例6】文字处理软件
生活随笔
收集整理的這篇文章主要介紹了
【寒假每日一题】洛谷 P5734 【深基6.例6】文字处理软件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:P5734 【深基6.例6】文字處理軟件 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn)
題目描述
你需要開發一款文字處理軟件。最開始時輸入一個字符串作為初始文檔。可以認為文檔開頭是第 0?個字符。需要支持以下操作:
- 1 str:后接插入,在文檔后面插入字符串 str,并輸出文檔的字符串。
- 2 a b:截取文檔部分,只保留文檔中從第 a?個字符起 b?個字符,并輸出文檔的字符串。
- 3 a str:插入片段,在文檔中第 a?個字符前面插入字符串 str,并輸出文檔的字符串。
- 4 str:查找子串,查找字符串 str?在文檔中最先的位置并輸出;如果找不到輸出 -1。
為了簡化問題,規定初始的文檔和每次操作中的 str?都不含有空格或換行。最多會有 q?次操作。
輸入格式
第一行輸入一個正整數 q,表示操作次數。
第二行輸入一個字符串 str,表示最開始的字符串。
第三行開始,往下 q?行,每行表示一個操作,操作如題目描述所示。
輸出格式
一共輸出 n?行。
對于每個操作 1,2,3,根據操作的要求輸出一個字符串。
對于操作 4,根據操作的要求輸出一個整數。
樣例 #1
樣例輸入 #1
4 ILove 1 Luogu 2 5 5 3 3 guGugu 4 gu樣例輸出 #1
ILoveLuogu Luogu LuoguGugugu 3提示
數據保證,1 <=?q <=?100,開始的字符串長度 <=?100。
AC code:
#include<iostream> #include<algorithm> #include<cstring> #include<string>using namespace std;int main() {int n;cin>>n;string s;cin>>s;while(n --){int x;cin>>x;switch(x){case 1:{string t;cin>>t;s += t;cout<<s<<endl;break;}case 2:{int a,b;cin>>a>>b;s = s.substr(a,b);cout<<s<<endl;break;}case 3:{int c;cin>>c;string t;cin>>t;s.insert(c,t);cout<<s<<endl;break;}case 4:{string t;cin>>t;if(s.find(t) < s.size())cout<<s.find(t)<<endl;elsecout<<-1<<endl;break;}}}return 0; }總結
以上是生活随笔為你收集整理的【寒假每日一题】洛谷 P5734 【深基6.例6】文字处理软件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 制作自己的xmpp/gtalk客户端
- 下一篇: 开源项目之在线网页截图工具 IECapt