zoukankan      html  css  js  c++  java
  • 九度OJ 1177 查找 (模拟)

    题目1177:查找

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:5659

    解决:1667

    题目描写叙述:

        读入一组字符串(待操作的),再读入一个int n记录记下来有几条命令,总共同拥有2中命令:1、翻转  从下标为i的字符開始到i+len-1之间的字符串倒序;2、替换  命中假设第一位为1,用命令的第四位開始到最后的字符串替换原读入的字符串下标 i 到 i+len-1的字符串。

    每次运行一条命令后新的字符串取代旧的字符串(即下一条命令在作用在得到的新字符串上)。

        命令格式:第一位0代表翻转。1代表替换;第二位代表待操作的字符串的起始下标int i;第三位表示须要操作的字符串长度int len。

    输入:

    输入有多组数据。


    每组输入一个字符串(不大于100)然后输入n。再输入n条指令(指令一定有效)。

    输出:

    依据指令对字符串操作后输出结果。

    例子输入:
    bac
    2
    003
    112as
    例子输出:
    cab
    cas

    这题说的非常牛逼,但事实上cmd仅仅能操作前十个下标。。。由于cmd分不开每一个数字

    #include<stdio.h>
    char s[120];
    char cmd[120];
    int start;
    int len;
    int n;
    void SWAP(char *a,char *b)
    {
        char t=*a;
        *a=*b;
        *b=t;
    }
    void reverse()
    {
        for(int i=start,j=start+len-1;i<j;++i,--j)
            SWAP(&s[i],&s[j]);
        printf("%s
    ",s);
    }
    void replace()
    {
        int k=3;
        for(int i=start;i<start+len;++i,k++)
        {
            s[i]=cmd[k];
        }
        printf("%s
    ",s);
    }
    int main(int argc, char *argv[])
    {
      //  freopen("1177.in", "r", stdin);
        while(~scanf("%s%d",s,&n))
        {
            while(n--){
                scanf("%s",cmd);
                if(cmd[0]=='0')
                {
                    start=cmd[1]-'0';
                    len=cmd[2]-'0';
                    reverse();
                }
                else
                {
                    start=cmd[1]-'0';
                    len=cmd[2]-'0';
                    replace();
                }
     
            }
        }
        return 0;
    }
     
    /**************************************************************
        Problem: 1177
        User: kirchhoff
        Language: C
        Result: Accepted
        Time:0 ms
        Memory:912 kb
    ****************************************************************/




    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    Excel文件上传
    SAP 中如何寻找增强
    MySQL性能优化的最佳经验,随时补充
    PHP编程效率的20个要点
    php性能优化
    AngularJS API之$injector ---- 依赖注入
    AngularJS API之extend扩展对象
    AngularJS API之equal比较对象
    AngularJS API之isXXX()
    AngularJS API之toJson 对象转为JSON
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4867313.html
Copyright © 2011-2022 走看看