剑指Offer—43—左旋转字符串

来源:互联网 发布:高斯金字塔 python 编辑:程序博客网 时间:2024/06/06 09:25

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

package A43左旋字符串;public class Solution {    //S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。    public String LeftRotateString(String str,int n) {        if (str.length() == 0){            return str;        }        String a = str.substring(0,n);        String b = str.substring(n,str.length());        StringBuilder stringBuilder = new StringBuilder();        stringBuilder.append(reverse(a));        stringBuilder.append(reverse(b));        return stringBuilder.reverse().toString();    }    public String reverse(String str){        return new StringBuilder(str).reverse().toString();    }    public static void main(String[] args) {        Solution solution = new Solution();        solution.LeftRotateString("abcdefXYZ",3);    }}
原创粉丝点击