锁定老帖子 主题:一道面试排序题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-25
public static int sort(Integer num){ if (num<10) return num; else{ int p=num%10,n = num/10; while(p!=0 && (num=num/10)>0){ p *=10; } return p+sort(n); } } public static void main(String []args){ String snumber ="1234567"; Integer number= Integer.valueOf(snumber); System.out.println(Sort.sort(number)); } |
|
返回顶楼 | |
发表时间:2011-03-31
public static int reverse(int i){ return reverseHelper(i, 0); } private static int reverseHelper(int i, int init){ if(i==0) return init; return reverseHelper(i/10, init*10+i%10); } 还好7行+尾递归 |
|
返回顶楼 | |
发表时间:2011-03-31
最后修改:2011-03-31
public int reverseInt(int n){ String tmp = ""; int m = n%10; tmp += m; if(n>9) tmp+=reverseInt(n/10); return Integer.parseInt(tmp); } |
|
返回顶楼 | |
发表时间:2011-03-31
public static void main(String[] args) { Study s = new Study(); System.out.println(s.sortNum(12345678)); } String result = ""; public String sortNum(Integer num){ result +=num.toString().substring(num.toString().length()-1,num.toString().length()); if ((num.toString().length()-1)>0) sortNum(Integer.valueOf(num.toString().substring(0,num.toString().length()-1))); return result; } |
|
返回顶楼 | |
发表时间:2011-03-31
为什么 这么麻烦,2行代码
StringBuffer b=new StringBuffer(String.valueOf(a)); System.out.println(b.reverse()); |
|
返回顶楼 | |
发表时间:2011-04-01
public class Test {
public static void main(String[] args) { System.out.println(reverseInt(12345)); } public static String reverse(String num) { return num.length() == 0 ? "" : num.substring(num.length() - 1) + reverse(num.substring(0, num.length() - 1)); } private static int reverseInt(int i) { return Integer.parseInt(reverse(String.valueOf(i))); } } 6行干净清爽 |
|
返回顶楼 | |
发表时间:2011-04-01
最后修改:2011-04-01
抛出异常的爱 写道 public static void main(String[] args) { System.out.println(Number.resver(1023450)); } [color=red]private[/color] static String resver(int high ) { if(high==0) return ""; return (high%10)+resver(high/10); } 8行之内. 算法不是重点。重点是那个private 呵呵 |
|
返回顶楼 | |
发表时间:2011-04-01
public String reverse(int x)
{ if(x<10) return x+""; String start=(x+"").substring(0,1); String end=(x+"").substring((x+"").length()-1,(x+"").length()); if(x>99) return end+reverse(Integer.parseInt((x+"").substring(1,(x+"").length()-1)))+start; else return end+start; } |
|
返回顶楼 | |
发表时间:2011-04-01
wen866595 写道
public static String reverseInt(int x) { String string = ""; if(x != 0) { string += x % 10 + reverseInt(x / 10); } return string; } 对于 x=0 不适用 仔细看了其他的回复,原来有了,
对于负数也不行。 |
|
返回顶楼 | |
发表时间:2011-04-01
public int inverted(int n){ if(n < 10)return n; return Integer.parseInt(n%10+""+inverted(n/10)); } |
|
返回顶楼 | |