我覺得這種方式是使用遞歸方法扭轉了串好:
public class Reversestringbyrecursivefunction {
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
while(true)
{
System.out.print("[?] Enter String('q' for exit)> ");
String str=input.next();
if(str.equals("q"))
break;
System.out.println("this string created by reversed recursive function : "+revers(str));
System.out.print("\n==========================\n");
}
System.out.print("\n\n\t\t\t[ GOOD LUCK!!! ]\n");
}
static String revers(String str)
{
if(str.length()<=1)
return str;
else
return revers(str.substring(str.length()-1, str.length()))+revers(str.substring(0, str.length()-1));
}
}
但是,爲了獲得最佳性能,你應該改變這一行:
return revers(str.substring(str.length()-1, str.length()))+revers(str.substring(0, str.length()-1));
到:
return str.substring(str.length()-1)+revers(str.substring(1, str.length()-1)+str.substring(0,1);
在上一行中:在最佳性能和一個階段中,只能交換輸入字符串的1個字符。但是,在新行中:在一個階段中,您可以交換輸入字符串的兩個字符
-1作爲裸碼,沒有任何解釋。 – luqui 2011-06-06 05:33:44
不完全:這將返回一個空字符串。 – trutheality 2011-06-06 05:49:00
@ trutheality:沒有注意到tht ... thx修復了它... – Chandu 2011-06-06 05:51:55