您好,欢迎来到伴沃教育。
搜索
您的当前位置:首页剑指offer第二版-58.2.左旋转字符串

剑指offer第二版-58.2.左旋转字符串

来源:伴沃教育

面试题58.2:左旋转字符串

题目要求:
实现一个函数完成字符串的左旋转功能。比如,输入abcdefg和数字2,输出为cdefgab。

package chapter6;

/**
 * Created with IntelliJ IDEA
 * Author: ryder
 * Date  : 2017/8/18
 * Time  : 16:05
 * Description:左旋转字符串
 * abcdeftg 2 => cdefgab
 **/
public class P286_LeftRotateString {
    public static String leftRotateString(String str,int i){
        if(str==null||str.length()==0||i<=0||i>=str.length())
            return str;
        StringBuilder stringBuilder = new StringBuilder(str);
        reverseSubString(stringBuilder,0,stringBuilder.length()-1);
        reverseSubString(stringBuilder,0,stringBuilder.length()-i-1);
        reverseSubString(stringBuilder,stringBuilder.length()-i,stringBuilder.length()-1);
        return stringBuilder.toString();
    }
    //翻转stringBuilder[start,end]
    public static void reverseSubString(StringBuilder stringBuilder,int start,int end){
        for(int i=start;i<=start+(end-start)/2;i++){
            char temp = stringBuilder.charAt(i);
            stringBuilder.setCharAt(i,stringBuilder.charAt(end-i+start));
            stringBuilder.setCharAt(end-i+start,temp);
        }
    }
    public static void main(String[] args){
        String str = "abcdefg";
        System.out.println(leftRotateString(str,2));
    }
}

运行结果

cdefgab

Copyright © 2019- bangwoyixia.com 版权所有 湘ICP备2023022004号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务