【机试备考】Day14-复制、剪切、粘贴 | string的插入和删除

题目

BUPT 2016 计算机 ProblemD
有以下三种操作。

(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

输入描述

多组测试数据。
首先给你s串,再给你一个m,然后给你m个操作。

输出描述

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

示例

输入

abcde
5
CUT 1 2
COPY 0 1
PASTE 1
PASTE 1
CUT 1 3

输出

ade
ade
adade
adadade
aade

题解

这很北邮,出过好几次string的题了,这道题主要用的函数有三个:substr() , erase() 和 insert(),就按照他说的调用相应的库函数就好了,很简单

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int n;
    string s;
    while(cin>>s)
    {
        cin>>n;
        string t,cmd;//t代表剪贴板
        for(int i=0;i<n;i++)
        {
            cin>>cmd;
            int l,r;
            if(cmd=="CUT")
            {
                scanf("%d%d",&l,&r);
                t=s.substr(l,r-l+1);//取剪切的子串放入t
                s=s.erase(l,r-l+1);//s删除剪切的部分

            }
            else if(cmd=="COPY")
            {
                scanf("%d%d",&l,&r);
                t=s.substr(l,r-l+1);//取剪切的子串放入t
            }
            else
            {
                scanf("%d",&l);
                s=s.insert(l+1,t);//insert默认插入在pos前,+1才能插入到pos后
            }
            cout<<s<<endl;
        }
    }
}

小结

insert()还不太熟,在这里记录一下

只写了最简单最常用的用法,怕看多了该乱了

insert()用法

c++/string/insert

重点记一下这个pos代表什么,口诀:下标前个数后

s="012345";

//在s[2]前面插入"iii",也可以想成在第2个字符后面插入"iii"
s.insert(2,"iii");//s="01iii2345"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为OD机试-2023真题主要考察了以下几个方面的知识点: 1. 数据结构与算法:题目涉及了常见的数据结构和算法,如数组、链表、树、图、排序、搜索等。要求考生熟悉这些数据结构的基本操作和常用算法的实现方法。 2. 编程语言:题目要求使用C++或Java语言完成编程任务,要求考生熟悉相应语言的语法和常用的库函数使用方法。 3. 网络通信:题目涉及了网络通信相关的知识点,如TCP/IP协议、HTTP协议、socket编程等。要求考生了解网络通信的基本概念和实现方式。 4. 操作系统:题目要求考生熟悉操作系统相关的知识,如进程管理、内存管理、文件系统等。要求考生了解操作系统的基本功能和实现原理。 5. 数据库:题目涉及了数据库相关的知识点,如SQL语句的编写、数据库的设计和优化等。要求考生具备数据库的基本操作和设计能力。 6. 设计模式:题目要求考生能够根据给定的需求设计相应的对象和类,并且符合设计模式的原则。要求考生熟悉常见的设计模式和其应用场景。 7. 系统设计与架构:题目要求考生从整体上设计和实现一个系统,并考虑系统的性能、可扩展性等因素。要求考生了解系统设计的基本原则和方法。 以上是华为OD机试-2023真题的一些考点分类。考生在复习备考时,可以根据这些考点有针对性地进行学习和练习,提升自己的应试能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值