题解 | #查找#

查找

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;
}
全部评论

相关推荐

沟头学院:无关比赛不要写,这样会显着你主次不分,比赛不要撒谎,有哪些就写那些,创新创业建议删除。技能特长可以适当夸大。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务