剑指 左旋转字符串

左旋转字符串

http://www.nowcoder.com/questionTerminal/12d959b108cb42b1ab72cef4d36af5ec

虽然题很简单,还是莫名陷入很多坑。
方法一:我的无脑方法 转为字符数组 挪挪挪

import java.util.*;
public class Solution {
    public String LeftRotateString(String str,int n) {
        if(str==null||str.length()==0)
            return "";
        if(n==0)
            return str;
        if(n>=str.length())
            n=n%str.length();
        char[] cha=str.toCharArray();
        char[] tep=new char[n];
//拷贝前n个
        for (int i=0;i<n;i++)
            tep[i]=cha[i];
//n后面往前挪
        for(int i=0;i<cha.length-n;i++)
            cha[i]=cha[i+n];
        int i=cha.length-n;
//前n个挪回来
        for(int j=0;j<n;j++)
            cha[i++]=tep[j];


        return String.valueOf(cha);
    }
}

方法二:用子字符拼一下就好了

public class Solution {
    public String LeftRotateString(String str,int n) {
        if(str==null||str.length()==0)
            return "";
        if(n==0)
            return str;
        if(n>=str.length())
            n=n%str.length();
        return str.substring(n)+str.substring(0,n);
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务