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吧。。。

  • 相关阅读:
    查找算法之——符号表(引入篇)
    排序算法之——优先队列经典实现(基于二叉堆)
    C# Timer和多线程编程、委托、异步、Func/Action
    Tomcat汇总-部署多个项目(不同端口)
    数据库汇总(MySQL教材)
    基础知识
    常用工具&网址
    Phython开发
    单元测试
    软件项目过程和文档
  • 原文地址:https://www.cnblogs.com/xym4869/p/8659962.html
Copyright © 2011-2022 走看看