public static String reverse(String s){ char []c=new char[s.length()]; for(int i=0;i<s.length();i++) c[i]=s.charAt(s.length()-1-i); return String.valueOf(c); }
第二个讨论的焦点是是如何去优化解决方法,像返回字符串本省“”,长度为1的字符串(本省就是反转)
递归(Recursion):
之后要求应聘者在反转的问题上写一个递归的方案(这至少是漂亮的,但至少可用)
1
2
3
4
5
6
|
public
String reverse(String str) { if
(( null
== str) || (str.length() <= 1 )) { return
str; } return
reverse(str.substring( 1 )) + str.charAt( 0 ); } |
有些开发人员在脑海中想不到处理递归,或者需要时间和一些提示。那些不能处理递归的很有可能对于复杂的问题没法完成。