前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小明的字符串

小明的字符串

作者头像
喜欢ctrl的cxk
发布2019-11-08 10:35:57
3330
发布2019-11-08 10:35:57
举报
文章被收录于专栏:Don的成长史Don的成长史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/102070581

题目描述:

小明同学需要对一个长度为 N 的字符串进行处理,他需要按照要求执行若干步骤,每个步骤都均为下面 2 种操作中的一种,2 种操作如下: TYPE 1. 从字符串结尾开始算起,将第 X 个字符之前的字符移动到字符串末尾 TYPE 2. 输出字符串索引为 X 的字符 小明尝试了很久没能完成,你可以帮他解决这个问题吗?

输入描述:

第一行,包含两个整数,字符串的长度 N 和操作次数T; 第二行为要操作的原始字符串; 之后每行都是要执行的操作类型 TYPE 和操作中 X 的值,均为整数。 输入范围: 字符串长度 N:1 <= N <= 10000 操作次数 T:1 <= T <= 10000 操作类型 TYPE:1 <= TYPE<= 2 变量 X:0 <= X < N。

输出描述:

操作的执行结果。

输入样例:

代码语言:javascript
复制
6 2
xiaomi
1 2
2 0

输出样例:

代码语言:javascript
复制
m

解题思路:

小米校招的字符串水题。若输入的type是1,则用substr将倒数第x个字符前的字符全部截取并移动到字符串末尾;若type不为1,则将字符串的第x个字符进行输出。

AC代码:

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int N,T;   //字符串长度N,操作次数T
    cin >> N >> T;
    cin.ignore();   //cin后用getline前一定要ignore吃回车
    string str;
    getline(cin,str);
    while(T--)
    {
        int type,x;
        cin >> type >> x;   
        if(type == 1) //type=1将字符串的倒数第x字符前的字符全移动到字符串末尾
        {
            string t = str.substr(0,str.length()-x);
            //cout << t << endl;
            str = str.substr(str.length()-x,x) + t;
            //cout << str << endl;
        }
        else  //type=2将字符串的第x个字符进行输出
        {
            cout << str[x] << endl;
        }
    }
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述:
  • 输入描述:
  • 输出描述:
  • 输入样例:
  • 输出样例:
  • 解题思路:
  • AC代码:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档