两个面试题请教一下

tmaclsl 2009-09-15 11:34:09


要求不能调用jdk提供的方法 用java 或者JavaScript 实现
1:字符串反转,如“abc” 反转为“cba”

2:一系列字符如果{1,3,6,7,7,7,9,9,9,6,5,5,,3} 输出出现次数最多的并且最大的数
...全文
451 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y569778402 2009-09-23
  • 打赏
  • 举报
回复
如果当时你实在想不起来如果你会用C做也可以啊 而且还能让面试官知道你不竟会java而且C也还行
hy158753228 2009-09-23
  • 打赏
  • 举报
回复
angel6709 2009-09-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liang8305 的回复:]
又见这种“不能调用jdk提供的方法”的题目。。。。。

程序干脆别写了

main函数也是JDK的方法;
[/Quote]

da357085813 2009-09-23
  • 打赏
  • 举报
回复
学习下
heixia2025 2009-09-18
  • 打赏
  • 举报
回复
他们的意思应该是不让用jdk里面类似reverse()这样的方法,比如StringBuilder的reverse方法
tmaclsl 2009-09-18
  • 打赏
  • 举报
回复
对啊
liang8305 2009-09-16
  • 打赏
  • 举报
回复
又见这种“不能调用jdk提供的方法”的题目。。。。。

程序干脆别写了

main函数也是JDK的方法;
yanliang_xt 2009-09-16
  • 打赏
  • 举报
回复
String类中的charAt()方法也不能用?
tmaclsl 2009-09-16
  • 打赏
  • 举报
回复
它的要求是不能用jdk提供的方法啊

第二个题目的意思好像是说要把出现次数最多的数先找出来 如果出现次数最多的德数有几个 再找出它们中最大的

clarence0124 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 lxxzhy 的回复:]
引用楼主 tmaclsl 的回复:
要求不能调用jdk提供的方法 用java 或者JavaScript 实现
1:字符串反转,如“abc” 反转为“cba”

2:一系列字符如果{1,3,6,7,7,7,9,9,9,6,5,5,,3} 输出出现次数最多的并且最大的数

就是暗示你用Javascript实现罗.
[/Quote]
这位仁兄说得很有道理,说不定在考你知不知道javascript是什么或者javascript和JDK的关系而不是希望你能用JAVA解出来,不过如果出题的人真是这么想也挺搞笑的。
dichyzhu 2009-09-16
  • 打赏
  • 举报
回复

import java.util.HashMap;
import java.util.Map;

public class Test{
public static void main(String[] args) {
int[] a = { 1, 3, 6, 7, 7, 7, 9, 9, 9, 6, 5, 5, 3 };
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < a.length; i++) {
int key = a[i];
Integer v = map.get(key);
map.put(key, v == null ? 1 : v + 1);
}

int tempKey = 0;
int tempValue = 0;

for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > tempValue) {
tempKey = entry.getKey();
tempValue = entry.getValue();
}
}
System.out.println("[" + tempKey + "," + tempValue + "]");
}
}


第一题的意思是不是不能用JDK的任何方法,如果是那样,就用JS来实现。
gutan_fox 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiongwenhua365 的回复:]
Java codeimport java.util.*;publicclass ReverseTest
{publicstaticvoid main(String[] args)
{
String str="abcdef";

System.out.println("顺序前:"+ str);char[] str_char= str.toCharArray();int len= str_char.length-1;for(int i=0;i<= len/2 ; i++)
{char temp= str_char[i];
str_char[i]= str_char[len- i];
str_char[len- i]= temp;
}

str=new String(str_char);
System.out.println("逆序后:"+ str);
}
}
Java codepublicclass GetMax
{publicstaticvoid main(String[] args)
{int[] source= {1,3,6,7,7,7,9,9,9,6,5,5,3,1,1};int[] count=newint[source.length];for(int i=0;i< source.length;i++)
{
count[source[i]]++;
}int max= count[0];int sub=0;for(int i=0;i< count.length;i++)
{if(count[i]>= max)
{
max= count[i];
sub= i;
}
}
System.out.println("下标是:"+ sub+"出现次数是:"+ count[sub]);
}
}
[/Quote]
比较支持7L的!
lxxzhy 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 tmaclsl 的回复:]
要求不能调用jdk提供的方法 用java 或者JavaScript 实现
1:字符串反转,如“abc” 反转为“cba”

2:一系列字符如果{1,3,6,7,7,7,9,9,9,6,5,5,,3} 输出出现次数最多的并且最大的数
[/Quote]
就是暗示你用Javascript实现罗.
adaikiss 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 tmaclsl 的回复:]
7楼的
char[] str_char = str.toCharArray();

这个算不算用到了jdk 提供的方法呢?
[/Quote]
如果LZ是这样想的,那你以后可以不用再去面试了!
LZ的回复让我觉得你对这两道面试题带有抵制的情绪。
如果对题目有疑问不解是可以提出的。这也是考面试者的某些素质。
对面试题的态度也就是对公司的态度,如果你没进公司就对公司有不好的态度~`````
xuejelly 2009-09-16
  • 打赏
  • 举报
回复
第一个问题:6楼的方法就能解决

第二个问题:


import java.util.HashMap;
import java.util.Map;

public class Test1 {

public static void main(String[] args) {
int[] arr={1,3,6,7,7,7,9,9,9,6,5,5,0,3};
Map<Integer, Integer> map=new HashMap<Integer, Integer>();
for(int temp:arr)
{
if(map.containsKey(temp)){
int m=(Integer)map.get(temp)+1;
map.put(temp,m);
}
else
{
map.put(temp, 1);
}
}
int n=0;
String strArr="";
for(Map.Entry<Integer, Integer> entry : map.entrySet())
{
if(entry.getValue()>n){
n=entry.getValue();
strArr=String.valueOf(entry.getKey());
}
else if (entry.getValue()==n)
{
strArr=strArr+","+String.valueOf(entry.getKey());
}
}
int maxNum=0;
for(String s:strArr.split(",")){
if(Integer.valueOf(s)>maxNum)
{
maxNum=Integer.valueOf(s);
}
}
System.out.println("出现次数最多且最大的数是: "+maxNum);
System.out.println("出现次数是: "+n);
}

}


自己的浅薄方法,有问题请指正。
xiongwenhua365 2009-09-16
  • 打赏
  • 举报
回复

import java.util.*;
public class ReverseTest
{
public static void main(String[] args)
{
String str = "abcdef";

System.out.println("顺序前:" + str);

char[] str_char = str.toCharArray();
int len = str_char.length - 1;
for(int i = 0;i <= len/2 ; i++)
{
char temp = str_char[i];
str_char[i] = str_char[len - i];
str_char[len - i] = temp;
}

str = new String(str_char);
System.out.println("逆序后:" + str);
}
}


public class GetMax
{
public static void main(String[] args)
{
int[] source = {1,3,6,7,7,7,9,9,9,6,5,5,3,1,1};
int[] count = new int[source.length];
for(int i = 0;i < source.length;i++)
{
count[source[i]]++;
}

int max = count[0];
int sub = 0;
for(int i = 0;i < count.length;i++)
{
if(count[i] >= max)
{
max = count[i];
sub = i;
}
}
System.out.println("下标是: " + sub + "出现次数是: " + count[sub]);
}
}
RainSmall 2009-09-16
  • 打赏
  • 举报
回复
不好意思,引用错误,应该是引用7楼的
RainSmall 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 thc1987 的回复:]
第一个:
JScript code<script language="javascript">function a(){var str='abc',sOut='';var arr= str.split('');for(var i= arr.length-1;i>=0;i--){
sOut+=arr[i];
}
alert(sOut);
}</script>
[/Quote]
麻烦各位高手解释下count[source[i]]++是什么意思啊?
猿敲月下码 2009-09-16
  • 打赏
  • 举报
回复
第一个:
<script language="javascript">
function a(){
var str='abc',sOut='';
var arr = str.split('');
for(var i = arr.length-1;i>=0;i--){
sOut+=arr[i];
}
alert(sOut);
}
</script>
tmaclsl 2009-09-16
  • 打赏
  • 举报
回复
所以啊 ,不知道为啥 都不能调用jdk的方法 当时就不知道怎么写 了 我怎么想怎么写都会用到jdk 的方法

郁闷
加载更多回复(12)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧