zoukankan      html  css  js  c++  java
  • 字符串处理

    问题描述

    有以下三种操作。

    (1)COPY l r(0<=l<=r<n),n代表s串的长度。这个表示将s串从l到r的序列复制到剪贴板t里面,覆盖t字符串。

    例如s为abcde    t为pqr

    执行COPY 1 2变为

    s为abcde     t为bc

    (2)CUT l r(0<=l<=r<n),n代表s串的长度。这个表示将s串从l到r的序列剪切到剪贴板t里面(删除s串中的l到r的序列),覆盖t字符串。

    例如s为abcde    t为pqr

    执行CUT 1 2变为

    s为ade     t为bc

    (3)PASTE p(0<=p<n),n代表s串的长度。这个表示将t串插入到s串p位置的后面。t保持不变。

    例如s为abcde    t为pqr

    执行PASTE 1 变为

    s为abpqrcde      t为pqr

    Input

    输入正整数N,表示N例测试。首先给你s串,再给你一个m,然后给你m个操作。

    Output

    对每个操作,输出操作后的s串。

    Sample Input

    abcde

    5

    CUT  1 2

    COPY 0 1

    PASTE 1

    PASTE 1

    CUT  1 3

    Sample Output

    ade

    ade

    adade

    adadade

    aade

    P.S.字符串操作还是要练练手,好久没拿这种题练手了啊。。。

     1 #include <iostream>
     2 #include<string>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int n;
    10     cin >> n;
    11     string s;
    12     cin >> s;
    13     string t;
    14     while(n--){
    15         string op;
    16         cin >> op;
    17         if(op=="CUT"){
    18         int l,r;
    19         cin >> l;
    20         cin >> r;
    21         string temp;
    22         for(int i=l;i<=r;i++)
    23             temp+=s[i];
    24         t=temp;
    25         s.erase(l,r);
    26         cout << s <<endl;
    27         }
    28         else if(op=="COPY"){
    29         int l,r;
    30         cin >> l;
    31         cin >> r;
    32         string temp;
    33         for(int i=l;i<=r;i++)
    34             temp+=s[i];
    35         t=temp;
    36         cout << s <<endl;
    37         }
    38         else if(op=="PASTE"){
    39         int p;
    40         cin >> p;
    41         s.insert(p,t);
    42         cout << s << endl;
    43         }
    44     }
    45     return 0;
    46 }

    总结:唉,这种题果然,用string类型超级爽啊超级爽,erase函数,insert函数,还是直接在后面+++,还是直接判断相等,真心爽啊爽,就是一定要注意头文件哦~

    我本来想直接用switch的,结果c++的switch只支持整型。。。好吧,估计是和java记差了,还是老老实实用if吧。。。

  • 相关阅读:
    ES6箭头函数中this的指向问题
    不借助vue-cli,自行构建一个vue项目
    Vue组件props选项-实现父子组件动态数据绑定
    Linux 基本操作命令
    Javascript
    ES6
    利用Gulp和Webpack进行项目自动化构建
    自定义View实现图片热区效果
    新年学习计划
    Activity跳转通过EventBus传值问题
  • 原文地址:https://www.cnblogs.com/xym4869/p/8659962.html
Copyright © 2011-2022 走看看