测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题