• 【Offer】[58-2] 【左旋转字符串】


    题目描述

      字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2, 该函数将返回左旋转两位得到的结果"cdefgab"。

    牛客网刷题地址

    思路分析

      首先根据传入的n将字符串分为两部分,分别翻转这两个部分,然后在整体对字符串进行翻转
     

    测试用例

    1. 功能测试:把长度为n的字符串左旋转0个字符、1个字符、2个字符、n-1个字符、n个字符、n+1个字符。
    2. 特殊输入测试:字符串的指针为nullptr指针。

    Java代码

    public class Offer058_02 {
        public static void main(String[] args) {
            test1();
            test2();
            test3();
    
        }
    
        public static String LeftRotateString(String str, int n) {
            return Solution1(str, n);
        }
    
        private static String Solution1(String str, int n) {
            
            if(str==null|| str.length()<=0) {
                return str;
            }
            if(n<=0 || n> str.length()) {
                return str;
            }
            char[] charArray = str.toCharArray();
            
            reverseCore(charArray, 0, n-1);
            reverseCore(charArray, n, charArray.length-1);
            reverseCore(charArray, 0, charArray.length-1);
            return String.valueOf(charArray);
        }
        
        private static void reverseCore(char[] s,int start,int end) {
            while(start<end) {
                char tmp = s[start];
                s[start] = s[end];
                s[end] = tmp;
                start++;
                end--;
            }
        }
    
        private static void test1() {
    
        }
    
        private static void test2() {
    
        }
    
        private static void test3() {
    
        }
    
    }
    

    代码链接

    剑指Offer代码-Java

  • 相关阅读:
    http请求
    mac chrome NET::ERR_CERT_INVALID
    百度小程序获取用户手机号
    js 异步总结
    百度小程序 es6 支持情况
    每日日报
    每日日报
    每日日报
    05程序员修炼之道:从小工到专家阅读笔记之二
    05程序员修炼之道:从小工到专家阅读笔记之一
  • 原文地址:https://www.cnblogs.com/haoworld/p/offer582-zuo-xuan-zhuan-zi-fu-chuan.html
Copyright © 2020-2023  润新知