A26408. 字符串操作
填空题
较难
知识点
题目描述
字符串操作
题目描述
从前有一个叫做小 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 行,每行表示一个操作。
输出描述
输出只有一行,一个字符串。
输入样例
3
Tom
F ht
B ut
R输出样例
tumoTth提示
保证操作次数 1<=n<=1000,字符串小 A 的初始长度和每次插入的字符串 str 的长度均不大于 100。
参考答案
#include<bits/stdc++.h>
using namespace std;
int n; // 操作次数
string str; // 初始字符串
int main() {
cin>>n; // 输入操作次数
cin>>str; // 输入初始字符串
for(int i=1; i<=n; i++) { // 循环进行操作
char ch; // 存储当前操作的类型
string str_1; // 存储插入的字符串
cin>>ch; // 输入操作类型
if(ch=='F') { // 如果是前插入操作
cin>>str_1; // 输入要插入的字符串
str=str_1+str; // 在初始字符串前插入输入的字符串
} else if(ch=='B') { // 如果是后插入操作
cin>>str_1; // 输入要插入的字符串
str=str+str_1; // 在初始字符串后插入输入的字符串
} else if(ch=='R') { // 如果是反转操作
reverse(str.begin(),str.end()); // 对字符串进行反转
}
}
cout<<str; // 输出最终的字符串
return 0;
}
上一题
下一题