【算法题】字符串

1、 字符串的旋转

假设字符串abcdef,输出defabc。
普通解法:数组char循环遍历比较筛选。
官方解法利用分治思想(三步法),将0-i,i-length分为两部分分别翻转,然后合起来再翻转。时间复杂度O(n),空间复杂度O(1)
自己想到的一个解法:

 public static void main(String args[]){
        System.out.println(reverseString( new String("abcdef").toCharArray(),3));
    }

    private static String reverseString(char[] arrs, int i) {
        if (arrs.length < 1 ){
            return new String(arrs);
        }
        StringBuilder str =new StringBuilder()
                .append(Arrays.copyOfRange(arrs, i, arrs.length))
                .append(Arrays.copyOfRange(arrs, 0, i));
        return str.toString();

    }
    时间复杂度O(n),空间复杂度O(1)
发布了213 篇原创文章 · 获赞 258 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/wolf_love666/article/details/93714431