Java-复制字符串中的递归

时间:2018-01-23 00:27:11

标签: java string recursion replication

我试图使用递归来复制字符串,并且我试图获得O(log n)复杂性。我编写了以下代码,但它仅适用于2的幂。

我试过,但我无法解决所有数字问题。有什么建议吗?

public class Main {
    public static int i=1;
    public static void main(String[] args) {
    // write your code here
        String stringnum="a";
        System.out.println("Final ="+Print(stringnum,8,stringnum));
    }

    public static String Print(String string,int num, String originalString){

        if(num<=1){
            System.out.println("base case called"+ string);
            return string;
        }
        else{
            string= string+string;
            System.out.println(i+""+string);
            i++;
            return Print(string,num/2,originalString);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

有些事情:

public static String Repeat(String string, int num) {
    if (num <= 0)
        return "";
    if (num == 1)
        return string;

    return Repeat(string + string, num / 2) +
        Repeat(string, num % 2);
}

编辑:一些提示使您的问题更容易理解

我猜你的意思是你的方法被称为Repeat而不是Print。为了进一步混淆,我猜测有很多System.out.println语句用于调试目的,对吗?

我在对Repeat的回答中更改了方法名称,以便向观众显示其目的。