牛客-小C的记事本——偏业务的代码实现
Posted C+++++++++++++++++++
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客-小C的记事本——偏业务的代码实现相关的知识,希望对你有一定的参考价值。
题目
题目详解
读完题意这题基本就出来了,你就依着题目的意思设计一个类,实现这个功能即可。这题偏业务代码,所以只需要选好工具选型即可。
这里主要就是撤销功能的实现可能对某些没学过数据结构的小白而言有点难实现。
由于撤销功能支持多次撤销,所以直接用栈来保存每次改变后的文字结果。每次撤销操作只需要出栈即可。具体到C++可以用vector也可用stack都行。。
注意一个坑:多组输入!
解题代码
#include<bits/stdc++.h>
using namespace std;
struct textNote
string text_cur;
vector<string>pre_text;
void append(string& src)
pre_text.push_back(text_cur);
text_cur.append(src);
void del(int k)
pre_text.push_back(text_cur);
text_cur.erase(text_cur.end()-k,text_cur.end());
void print(int pos)
cout<<text_cur[pos-1]<<'\\n';
void undo()
text_cur = pre_text.back();
pre_text.pop_back();
void clear()
pre_text.clear();
text_cur.clear();
;
int main()
ios::sync_with_stdio(false);
int n;
textNote content;
while (cin >> n)
while (n--)
int p;cin>>p;
int pos;
string src;
switch (p)
case 1:
cin>>src;
content.append(src);
break;
case 2:
cin>>pos;
content.del(pos);
break;
case 3:
cin>>pos;
content.print(pos);
break;
case 4:
content.undo();
break;
content.clear();
return 0;
以上是关于牛客-小C的记事本——偏业务的代码实现的主要内容,如果未能解决你的问题,请参考以下文章