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

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

时间:2023-09-03 21:36:59浏览次数:55  
标签:char ch reverse Offer int II String 翻转 58


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

  1. 翻转前n个字符
  2. 翻转其余字符
  3. 翻转所有字符
class Solution {
    public String reverseLeftWords(String s, int n) {
        char[] ch = s.toCharArray();
        reverse(ch, 0, n - 1);
        reverse(ch, n, ch.length - 1);
        reverse(ch, 0, ch.length - 1);
        return new String(ch);
    }

    void reverse(char[] ch, int l, int r){
        while(l < r){
            char tmp = ch[l];
            ch[l] = ch[r];
            ch[r] = tmp;
            l++;
            r--;
        }
    }
}


标签:char,ch,reverse,Offer,int,II,String,翻转,58
From: https://blog.51cto.com/u_16208057/7343323

相关文章

  • 剑指 Offer 64. 求1+2+…+n
    剑指Offer64.求1+2+…+n使用逻辑运算符的短路效应代替终止条件。classSolution{intres=0;publicintsumNums(intn){booleanx=n>1&&sumNums(n-1)>0;res+=n;returnres;}}......
  • 剑指 Offer 60. n个骰子的点数
    剑指Offer60.n个骰子的点数动态规划:已知n-1个骰子的所有情况,再增加一个骰子,可推出n个骰子的所有情况。增加的一个骰子的点数只有1-6种可能,与n-1个骰子对应点数相乘,可得到n个骰子点数的一种情况,遍历所有情况即可。classSolution{publicdouble[]dicesProbability(intn)......
  • 剑指 Offer 06. 从尾到头打印链表
    剑指Offer06.从尾到头打印链表方法一顺序添加,再翻转。classSolution{publicint[]reversePrint(ListNodehead){ListNodeh=head;List<Integer>res=newArrayList<>();while(h!=null){res.add(h.val);h=......
  • 剑指 Offer 03. 数组中重复的数字
    剑指Offer03.数组中重复的数字利用题目的限制条件:所有数字都在0~n-1的范围内通过交互让数字和下标一一对应,如果有多个数字对应同一个下标,那就找到了答案。classSolution{publicintfindRepeatNumber(int[]nums){intn=nums.length;inti=0;......
  • 代码随想录算法训练营第二十九天| 491.递增子序列 46.全排列 47.全排列 II
     491.递增子序列   卡哥建议:本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html  视频讲解:https://www.bilibili.com/video/BV1EG4y1h78v  做题思路......
  • 剑指 Offer 62. 圆圈中最后剩下的数字(简单)
    题目:classSolution{public:intlastRemaining(intn,intm){intpos=0;for(inti=2;i<=n;i++){pos=(pos+m)%i;}returnpos;}};作者:想吃火锅的木易链接:https://leetcode.cn/problems/yuan-quan-zhong-z......
  • 剑指offer_20230803
    剑指Offer51.数组中的逆序对题目说明在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。解题思路1:暴力肯定是可行但是会超时的,就不用考虑了,但理论可行解题思路2:归并可以利用归并排序时的一个特性......
  • 跳跃游戏 II
    给定一个长度为n 的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i] 表示从索引i 向前跳转的最大长度。换句话说,如果你在nums[i] 处,你可以跳转到任意nums[i+j] 处:0<=j<=nums[i] i+j<n返回到达 nums[n-1] 的最小跳跃次数。生成的测试......
  • 代码随想录算法训练营第二十八天| 93.复原IP地址 78.子集 90.子集II
     93.复原IP地址    卡哥建议:本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了   题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html   视频讲解:https://www.bilibili.com/video/BV1XP4......
  • 代码随想录算法训练营第二十七天| 39. 组合总和 40.组合总和II 131.分割回文串
      39. 组合总和    卡哥建议:本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制   题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html   视频讲解:https://www.bilibili.com......