1 条题解

  • 1
    @ 2026-3-7 18:43:38

    题解 z1054. 小A的文本编辑器

    本题较难点显然是跳转指令类以及计算边界

    计算边界可以统一处理,使用if?:运算符都可以。如:

    //r表示行。c表示列。a为string组,表示文本。
    //本人原代码行列从0开头,输出时要加1。
    r=(r[0?0:(r](0?0:(r)n-1?n-1:r));
    c=(c>int(a[r].size())-1?int(a[r].size())-1:(c<0?0:c));
    

    分析跳转指令类可以使用substr(a,b)stoi(a)substr(a,b)用于截取从 aa 开头,长度为 bb 的字符串;stoi(a)用于将字符串 aa 转化为整数。代码如:

    //p表示命令。
    else if(p[0]==':'){
        tmp=p.substr(1);
        if(tmp[0]=='+'){
            tmp=tmp.substr(1);
            r+=stoi(tmp);
        }
        else if(tmp[0]=='-'){
            tmp=tmp.substr(1);
            r-=stoi(tmp);
        }
        else{
            r=stoi(tmp)-1;
        }
    }
    

    其余代码不展示。

信息

ID
1260
时间
1000ms
内存
512MiB
难度
7
标签
(无)
递交数
99
已通过
25
上传者