锁定老帖子 主题:一道面试排序题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (4) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-04
最后修改:2010-06-04
public int reverse(int num){
|
|
返回顶楼 | |
发表时间:2010-06-04
soton_dolphin 写道 public class Reverse{ public static void reverse(int number){ if(number<10){ System.out.print(number); } else{ int num = number%10; System.out.print(num); reverse(number/10); } } public static void main(String[] args){ reverse(123); } } 还是这个算法经典 |
|
返回顶楼 | |
发表时间:2010-06-04
public class MyClass {
public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = null; while(!(str=s.nextLine()).equals("")) { reverse(str,0); } } private static void reverse(String str,int i) { if(i==str.length()-1) { System.out.print(str.charAt(i)); return; } reverse(str,i+1); System.out.print(str.charAt(i)); } } |
|
返回顶楼 | |
发表时间:2010-06-04
最后修改:2010-06-04
/**
|
|
返回顶楼 | |
发表时间:2010-06-04
想了一个简单的方法:既能用效率极高的置换,又能满足要求,这里就写一下简单的伪代码:
public String reverse(String str){ reverseIntern(str.toCharArray(),0,str.length-1); }//row count:1 private reverseIntern(char[] chs,int sIdx,int eIdx){ if(sIdx>=eIdx) return; char temp=chs[sIdx];chs[sIdx]=chs[eIdx];chs[eIdx]=temp; reverseIntern(chs,sIdx+1,eIdx-1); }//row count:6 |
|
返回顶楼 | |
发表时间:2010-06-04
最后修改:2010-06-04
soton_dolphin 写道 public class Reverse{ public static void reverse(int number){ if(number<10){ System.out.print(number); } else{ int num = number%10; System.out.print(num); reverse(number/10); } } public static void main(String[] args){ reverse(123); } } 我也想的是这个方法,不过改成返回值了: public static int reverse(int source) { if (source < 10) { return source; } else { int num = source % 10; return (int) (num * (Math.pow(10, (source + "").length() - 1)) + reverse(source / 10)); } } 如果最后几位为0,将忽略0的存在。 |
|
返回顶楼 | |
发表时间:2010-06-05
C写的。
#include <stdio.h> int reverse(int n, int* ret) { *ret = (*ret) * 10 + n % 10; if (n < 10) { return; } n = n / 10; reserve(n, ret); } int main() { int test = 123456789; int wanted = 0; reverse(test, &wanted); printf("%d, %d\r\n", test, wanted); return 0; } |
|
返回顶楼 | |
发表时间:2010-06-05
public static void main(String[] args) {
int a = 12345; StringBuffer sb = new StringBuffer("" + a); int b = Integer.parseInt(sb.reverse().toString()); out.println(b); } |
|
返回顶楼 | |
发表时间:2010-06-05
太多人不审题
|
|
返回顶楼 | |
发表时间:2010-06-05
一个方法,参数int型,一个参数,需要用到递归,代码8行内。不知道返回类型要求是String还是int。
我觉得楼主描述的不清楚啊 题目:写一个方法,要求参数int类型,如:传入一个12345,返回结果54321。 如果这是原题,不知道是要倒序排序还是要简单的反转。但楼主题目却说是排序。 |
|
返回顶楼 | |