锁定老帖子 主题:一个java面试题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-06-18
String temp = "a b c e f g h i j k l m n o p q r s t u v w x y z ";
StringBuffer sb = new StringBuffer(26); char space = ' '; for (int i = 0; i < temp.length(); i++) { if(temp.charAt(i) != space ) { sb.append(temp.charAt(i)); } } 不太明白不能复制是啥意思? |
|
返回顶楼 | |
发表时间:2012-06-18
我感觉这道题是搞c的人面的,因为在c程序员中
无非是两大问题 1.字符串处理 2.指针处理。。。。。。。。。 |
|
返回顶楼 | |
发表时间:2012-06-18
C 里因为可以使用MEM MOVE 出这个题目才有意义吧。Java 中,从头读到尾,非空就写到文件里好了,文件又不占内存。
|
|
返回顶楼 | |
发表时间:2012-06-18
在java里面 String的本质上 char数组
|
|
返回顶楼 | |
发表时间:2012-06-18
内存接近用完了 所以不能复制 弄到文件中 分别小部分小部分的处理这思路可以
|
|
返回顶楼 | |
发表时间:2012-06-18
我也觉得是写到文件里面,再读回来
|
|
返回顶楼 | |
发表时间:2012-06-18
最后修改:2012-06-18
ray_linn 写道 C 里因为可以使用MEM MOVE 出这个题目才有意义吧。Java 中,从头读到尾,非空就写到文件里好了,文件又不占内存。
打开文件难道不占内存吗?求波解 |
|
返回顶楼 | |
发表时间:2012-06-19
这应该是一个在线性表里面,删除data==x(可能重复)的问题。。。根据题目意思,内存几乎占满,就是说要在空间复杂度为O(1)或者稍微多一点的情况下,将空格删除。
首先,看java的API知道,String str = "abc"; 等效于 char data[] = {'a','b','c'};String str = new String(data); 那么,我们的问题就转化成,在数组data[]中删除空格字符。以下只提供思路,实现代码大家自己去试验了:) 我们现在其实已知,data[]数组的长度,假设为length,那么只需要对data[]数组循环,把空格字符交换到数组尾,最后可以得到不是空格的字符的个数。这个个数就是新的数组的长度,再重置data[]数组的长度即可。 |
|
返回顶楼 | |
发表时间:2012-06-19
不知道这个题目要考的什么。。。
没有内存,基本什么都干不了,猜测题目可能要的是下面的这个? static void change(){ String str = new String("a a b c j iz c q cc dd"); try { Field f_value = str.getClass().getDeclaredField("value"); Field f_count = str.getClass().getDeclaredField("count"); f_value.setAccessible(true); f_count.setAccessible(true); int count = f_count.getInt(str); char[] chars =(char[])f_value.get(str); for(int i=0;i<chars.length;i++){ while(chars[i]==' '){ for(int j=i+1;j<chars.length;j++){ chars[j-1]=chars[j]; } count--; } } f_count.setInt(str, count); System.out.println(str); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } |
|
返回顶楼 | |
发表时间:2012-06-19
最后修改:2012-06-19
cttnbcj 写道 ray_linn 写道 C 里因为可以使用MEM MOVE 出这个题目才有意义吧。Java 中,从头读到尾,非空就写到文件里好了,文件又不占内存。
打开文件难道不占内存吗?求波解 你不会用 Console 直接print出来,用管道获取。。连文件操作都免。 java XXXX.class > save.txt 这种题叫挫题。 |
|
返回顶楼 | |