首页 > 其他分享 >剑指Offer 58-||.左旋转字符串

剑指Offer 58-||.左旋转字符串

时间:2023-02-28 13:11:14浏览次数:36  
标签:58 temp Offer int substr start 字符串 size string

题目描述

 

 

解法一

基本思路:直接移动

class Solution {
public:
    string reverseLeftWords(string s, int n) {
        for(int i = 0; i < n; i++){
            int j = 0;
            int temp = s[0];
            for(; j < s.size() - 1; j++){
                s[j] = s[j+1];
            }
            s[j] = temp;
        }
        return s;
    }
};

 

 

解法二

基本思路:两段拼接 

class Solution{
public:
    string reverseLeftWords(string s, int n) {
        string temp = "";
        for(int i = n; i < s.size(); i++){
            temp += s[i];
        }
        for(int i = 0; i < n; i++){
            temp += s[i];
        }
        return temp;
    }
};

 

解法三

基本思想:两段拼接,使用substr(start, len);

  主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。

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

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

class Solution {
public:
    string reverseLeftWords(string s, int n) {
        string start = s.substr(0, n);
        string end = s.substr(n, s.size() - n);
        string res = end + start;
        return res;
    }
};

 

标签:58,temp,Offer,int,substr,start,字符串,size,string
From: https://www.cnblogs.com/zc-030/p/17162369.html

相关文章

  • shell中产生随机字符串的方法
    random变量echo$RANDOM8746生成0-32767之间的整数随机数,若超过5位可以加个固定10位整数,然后进行求余。再结合md5生成字符串echo$RANDOM|md5sum|head-c10e0......
  • c# 避免代码中直接暴露字符串
    ///<summary>///避免代码中直接暴露字符串///将字符串转字节///</summary>///<paramname="byteDatas"></param>......
  • [转]Redis干货 | 五种常用类型之String字符串详解
    一.背景说明小白:伟哥,java中String是最常用类型,Redis中也是吗?伟哥:差不多,我给你稍微讲一下。二.数据类型依据Redis官网,目前Redis数据类型共计九种。具体整理如下:......
  • 【LeeCode】剑指 Offer II 088. 爬楼梯的最少成本-- todo
    【题目描述】数组的每个下标作为一个阶梯,第 ​​i​​​ 个阶梯对应着一个非负数的体力花费值 ​​cost[i]​​​(下标从 ​​0​​ 开始)。每当爬上一个阶梯都要花费对......
  • KMP算法(字符串匹配算法最优解)
    KMP算法重点在于求next数组,理解next数组的含义。next数组的作用是当某次子串和主串匹配失败时,迅速的判断出字串索引j应该等于多少,而不回退主串的索引i,从而减少时间复杂度,......
  • AcWing 2058. 笨拙的手指
    1.题目描述每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。例如,如果她将数字14转换为二进制数,那么正确的结果应为1110,但她可能会写下01......
  • 每日一练(剑指offer)旋转数组的最小数字
    描述有一个长度为n的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的......
  • 给定区段范围内字符串自生成代码
    因项目原因,需要将一个区段范围内的字符串,自生成相关代码。比如:stringtopLeft1ColorsString="(3-16,0)";stringtopLeft2ColorsString="(0,16-3)";stringtopRight1C......
  • 字符串根据逗号拆分转list
    Stringpath="123,456,789"if(path!=null&&path.indexOf(",")!=-1){String[]array=path.split(",");List<String>list=Arrays.asList(array);}/***逗号......
  • 【Python】判断字符串输入合法化
    Python判断字符串输入合法化​​只包含数字​​​​包含数字​​​​只包含中文​​​​包含中文​​​​只包含字母​​​​包含字母​​只包含数字判断字符串是否只包含数......