题解 | #查找#

查找

http://www.nowcoder.com/practice/a988eda518f242c29009f8620f654ede

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
void reverse(string &s, int left, int length){
    int right = left + length - 1;
    for(int i = left,j = right;i < (left+right+1)/2;++i,--j){
        char temp = s[i];
        s[i] = s[j];
        s[j] = temp;
    }
}
void second(string &s, int left, int length, string change){
    string part1 = s.substr(0,left);
    string part2 = s.substr(left+length);
    s = part1 + change + part2;
}
int main(){
    string s;int n;
    cin >> s >> n ;
    while(n--){
        string temp;
        cin >> temp;
        if(temp[0]-'0' == 0)
            reverse(s, temp[1]-'0', temp[2]-'0');
        else
            second(s, temp[1]-'0', temp[2]-'0', temp.substr(3));
        cout << s <<endl;
    }
    return 0;
}
全部评论

相关推荐

01-24 08:13
已编辑
合肥工业大学 Java
程序员牛肉:没啥问题。标准的流水线简历,但是学历好一点,所以应该是有约面的机会的。 这段时间可以考虑把自己的两个项目彻底的理一理。争取能够讲清楚每一个功能点
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务