次のように、再帰を使用してStringをリバースしようとしていました。 しかし私がreverse(arr,start++,end--)
を呼び出すとき、それはstackoverflowエラーを与えています。
私はreverse(arr,start+1,end-1)
を使ってみましたが、うまくいきました。fun(agr ++)vs fun(arg + 1)in java
public class Reverse {
public static void main(String[] args) {
char inp[] = "TestString".toCharArray();
int n = inp.length;
reverse(inp, 0,n-1);
System.out.println(String.valueOf(inp));
}
public static void reverse(char[] arr, int start, int end){
if(start>=end)
return ;
char tmp;
tmp = arr[start];
arr[start] = arr[end];
arr[end] = tmp;
reverse(arr,start+1,end-1);//error line
}
reverse(arr、start ++、end--)の問題は何ですか? 私はなぜ、start ++とend - の値がfunctionに渡されないのか知りたいです。
stackoverflowのエラーが発生します。 –