美文网首页
剑指offer:左旋转字符串

剑指offer:左旋转字符串

作者: 衣介书生 | 来源:发表于2018-04-05 14:59 被阅读6次

题目分析

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
循环左移字符串,这里用到的思路是“三次翻转”。

代码

public class Solution {
    public String LeftRotateString(String str,int n) {
        // 空指针,空串
        if(str == null || str.length() == 0) {
            return "";
        }
        // 单字符字符串
        if(str.length() == 1) {
            return str;
        }
        // 恰好移动长度的整数倍
        if(n % str.length() == 0) {
            return str;
        }
        char[] arr = str.toCharArray();
        reverse(arr, 0, n-1);
        reverse(arr, n, arr.length - 1);
        reverse(arr, 0, arr.length - 1);
        return new String(arr);
    }
    
    public void reverse(char[] array, int start, int end) {
        for(int i = 0; i <= (end - start) / 2; i++) {
            char temp = array[start + i];
            array[start + i] = array[end - i];
            array[end - i] = temp;
        }
    }
}

相关文章

  • [刷题记录] 剑指 Offer 58 - II. 左旋转字符串

    2021.11.23算法笔记 剑指 Offer 58 - II. 左旋转字符串 示例 1:输入: s = "abc...

  • 每日一练(32):左旋转字符串

    title: 每日一练(32):左旋转字符串 categories:[剑指offer] tags:[每日一练] d...

  • 剑指offer——JAVA版

    Array 数组题目汇总[18题] [剑指offer] 二维数组中的查找 [剑指offer] 旋转数组的最小数字 ...

  • [剑指offer] 左旋转字符串

    本文首发于我的个人博客:尾尾部落 题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就...

  • 剑指offer:左旋转字符串

    题目分析 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。...

  • 剑指Offer——字符串的旋转

    问题一:左旋转字符串 题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模...

  • 【剑指 offer】左旋转字符串。

    1、题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作...

  • 剑指offer 左旋转字符串

    点击进入 牛客网题库:左旋转字符串 题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就...

  • 【剑指Offer 42】左旋转字符串

    题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。 ...

  • 剑指 offer:43、左旋转字符串

    43. 左旋转字符串 题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模...

网友评论

      本文标题:剑指offer:左旋转字符串

      本文链接:https://www.haomeiwen.com/subject/oynbfftx.html