A27205. 字符操作
填空题
较难
知识点
题目描述
字符操作
题目描述
从前有一个叫做小 A 的字符串,它住在编程世界的字符村。小 A 喜欢和其他字符交朋友,比如空格、逗号和字母B。有一天,小A遇到了一个神秘的函数,这个函数告诉它,只要加入更多的字符,就能变成更强大的字符串。于是,小A开始了冒险,结识了字符’1’、符号#,甚至还有换行符’\n’。最终,小A成为了一个长长的、有意义的句子,实现了自己的梦想。在这个过程中,小A明白了合作的重要性,也找到了自己在代码中的位置。小A在旅途中遇到了很多字符串 str,随着小A不断的结交朋友,它的长度也逐渐变长,具体有两种变长操作:
F str:前插入。表示在字符串小A前面插入字符串 str。
B str:后插入。表示在字符串小A后面插入字符串 str。
R:表示反转整个字符串。
规定字符串小A的初始模样和每次操作的 str 都不含空格或换行。
请你计算出字符串小A旅途结束后的模样。
输入
输入共 n+2 行:
第一行,输入一个正整数 n,表示操作次数;
第二行,输入一个字符串 str,表示文档最开始的字符串;
从第三行开始,往下n行,每行表示一个操作。
保证操作次数 1<=n<=1000,字符串小A的初始长度和每次插入的字符串 str 的长度均不大于 100。
输出
输出只有一行,一个字符串。
样例:
输入
3
Tom
F ht
B ut
R输出
tumoTth参考答案
#include<bits/stdc++.h>
using namespace std;
//方法:按题意模拟
int n;
string str;
int main(){
cin>>n;
cin>>str;
while(n--){
char c;
string str2;
cin>>c;
if(c=='F'){//操作类型1:str前插入
cin>>str2;
str=str2+str; //将str拼接到str2后面
//str.insert(0,str2);//也可以使用插入函数
}else if(c=='B'){//操作类型2:str后插入
cin>>str2;
str+=str2;//将str2拼接到str后面
}else{//操作类型3:反转
reverse(str.begin(),str.end());//使用反转函数
}
}
cout<<str;
return 0;
}
上一题
下一题