北邮 oj 107 字符串操作
来源:互联网 发布:日志管理系统java设计 编辑:程序博客网 时间:2024/05/17 08:18
107. 字符串操作
时间限制 1000 ms 内存限制 65536 KB Special Judge
题目描述
大家平时都会用到字符串,现在有几种字符串操作,需要你用这几种操作处理下字符串。
HINT
字符串下标从0开始,所有操作的数据范围都合乎规范。
输入格式
多组数据,以EOF结束。
第一行一个字符串,字符串长度大于0,并且小于等于200。
第二行一个数字t,(0<t<=200)。
下面t行,每行表示一种操作。
共有两种操作,每行数据的第一个数表示操作的种类:
翻转操作:第一个是一个数字0,然后两个数字i和len,翻转从下标i长度为len的子串。
替换操作:第一个是一个数字1,然后两个数字i和len,接着一个长度为len的字符串str,用str替换从下标i长度为len的子串。
字符串操作后会更新,旧的字符串被舍弃。(详见sample)
输出格式
每个操作之后输出生成的新的字符串
输入样例
bac20 0 31 1 2 as
输出样例
cabcas
解题思路
本题的重点是如何控制输入的结束,其余的还是比较简单的,我的算法时间复杂度有点大,欢迎大家多提修改意见,互相学习!
C++代码:
#include<stdio.h>#include<string>#include<iostream>using namespace std;int main(){string s;char c[200];while(gets(c)){ s=c; int t,op;scanf("%d",&t);int i,len;char temp;for(int j=0;j<t;j++){ scanf("%d",&op);if(op==0){ scanf("%d %d",&i,&len); for(int m=i,n=len+i-1;m<n;m++,n--) { temp=s[m]; s[m]=s[n]; s[n]=temp; } cout<<s<<endl;}else if(op==1){ string str; scanf("%d %d",&i,&len);cin>>str;for(int m=0;m<str.size();m++){ s[i+m]=str[m];}cout<<s<<endl;}}getchar();}return 0;}
0 0
- 北邮 oj 107 字符串操作
- 北邮OJ-107. 字符串操作-11网研上机A
- OJ 系列之字符串基本操作
- OJ中字符串输入及相关操作
- 九度OJ 1206:字符串连接 (字符串操作)
- 北邮OJ 90. 字符串转换
- 【北邮OJ】99. 打印字符串
- LeetCode OJ ZigZag Conversion ”之“字符串变化 string操作
- 九度OJ 1177:查找 (字符串操作)
- 华为OJ:字符串反转
- oj字符串的复制
- 【华为OJ】字符串反转
- 华为OJ 字符串排序
- 【华为OJ】字符串排序
- 【华为oj】字符串分割
- 华为OJ-字符串分割
- 南阳oj 字符串替换
- 南邮 OJ 1620 字符串
- java开发前奏
- 微信分享链接title,图片的实现(多页面)
- 反射
- 契约——图片相关
- MySQL redo log及recover过程浅析
- 北邮 oj 107 字符串操作
- hadoop学习笔记之HDFS
- 20170313zabbix的php-bcmath错误
- Maven 与 IntelliJ IDEA 的完美结合
- Vue学习之路---No.3(分享心得,欢迎批评指正)
- mac locate
- Linux 简介
- Linux 开发,使用多线程还是用 IO 复用 select/epoll?
- unknown type name 'uint32_t'