首页 > 其他分享 >左旋转字符串【剑指Offer, 语法题】

左旋转字符串【剑指Offer, 语法题】

时间:2023-03-05 23:57:04浏览次数:41  
标签:string Offer s2 pos 语法 substr str 字符串

左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。

请定义一个函数实现字符串左旋转操作的功能。

比如输入字符串"abcdefg"和数字 2,该函数将返回左旋转 2 位得到的结果"cdefgab"。

注意:

数据保证 n 小于等于输入字符串的长度。
数据范围
输入字符串长度 [0,1000]。

样例
输入:"abcdefg" , n=2

输出:"cdefgab"

substr 指定长度复制

形式

s.substr(pos, len)

返回值

string,包含s中从pos开始的len个字符的拷贝
(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)

异常

若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;
若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾

点击查看代码
class Solution {
public:
    string leftRotateString(string str, int n) {

        return str.substr(n)+str.substr(0,n);
    }
};

迭代器

string 有个构造函数:传入起点和结束点迭代器,可以构造出迭代器之间的字符串(左闭右开)。
分别构造出 s1 为 s[n] ~ 末尾。s2 为 s[0] ~ s[n-1]
返回 s1 + s2 即可.

点击查看代码
class Solution {
public:
    string leftRotateString(string str, int n) {
        string s1(str.begin() + n, str.end());
        string s2 (str.begin(), str.begin() + n);
        return s1 + s2;
    }
};

标签:string,Offer,s2,pos,语法,substr,str,字符串
From: https://www.cnblogs.com/J-12045/p/17182236.html

相关文章

  • 每日一练(剑指offer)打印从1到最大的n位数
    描述输入数字 n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。1.用返回一个整数列表来代替打印2.n为正整数,0<n<=......
  • Yaml语法
    ##Yaml语法编程免不了要写配置文件,怎么写配置也是一门学问。YAML是专门用来写配置文件的语言,非常简洁和强大,远比JSON格式方便YAML语言的设计目标,就是方便人类读......
  • Python学习笔记(七)字符串操作
    一、数据类型转换%s字符串%d数值整数%f浮点数formatf表达式挖坑填坑法则1name='张三'2age=183height=180.545print('我的名字是%s'%name)6p......
  • 剑指 Offer50. 第一次只出现一次的字符
    题目描述  解法一哈希表法思路:首先遍历一遍s,在哈希表里统计字符数量是否大于1;再遍历一遍s,在哈希表中找到首个数量为1的字符classSolution{public:char......
  • markdown语法
    一级标题二级标题三级标题列表无序列表列表1列表2引用这是一条引用行内代码intmian(){printf("helloworld");}代码块intmain(){printf......
  • Java小练习--统计字符串中字母和数字的个数
    题目统计字符串中字母和数字的个数完整代码packagetestimportjava.util.Scanner;publicclasscustomer1{publicstaticvoidmain(Stringargs[]){System.out.......
  • stata:删除字符串的空格
    //替换所有空格//下面语句结果为4displength(subinstr("1233","","",.))//itrim(s)将字符间多于一个空格缩减为一个空格,对首尾空格不起作用displengt......
  • NOI / 1.7编程基础之字符串 12:加密的病历单
    描述小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又......
  • 1.7编程基础之字符串
    12:加密的病历单1.描述小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得......
  • Day02.MYSQL高级语法
    MYSQL基础语法回顾MySQL管理数据库创建数据库CREATEDATABASEIFNOTEXISTS数据库名;删除数据库DROPDATABASE数据库名;表的管理查看所有表use数据库名;选......