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)