要求不能调用jdk提供的方法 用java 或者JavaScript 实现
1:字符串反转,如“abc” 反转为“cba”2:一系列字符如果{1,3,6,7,7,7,9,9,9,6,5,5,,3} 输出出现次数最多的并且最大的数

解决方案 »

  1.   

    第一个public static void main(String[] args) {
    StringBuffer str=new StringBuffer("abc");
    System.out.println(str.reverse());第二个 用两个变量 
    IF判断 如果X==i 
    则 另个变量++  max用循环求  懒的写了,百度下能搜到的
      

  2.   

    它的要求是不能用jdk提供的方法啊第二个题目的意思好像是说要把出现次数最多的数先找出来 如果出现次数最多的德数有几个 再找出它们中最大的
      

  3.   

    String类中的charAt()方法也不能用?
      

  4.   

    又见这种“不能调用jdk提供的方法”的题目。。程序干脆别写了main函数也是JDK的方法;
      

  5.   

    所以啊 ,不知道为啥 都不能调用jdk的方法 当时就不知道怎么写 了 我怎么想怎么写都会用到jdk 的方法郁闷 
      

  6.   

    第一个:
    <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>
      

  7.   


    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]);
    }
    }
      

  8.   

    第一个问题: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);
    }}
    自己的浅薄方法,有问题请指正。
      

  9.   


    public static void main(String[] args) { 
    StringBuffer str=new StringBuffer("abc"); 
    System.out.println(str.reverse()); 
      

  10.   

    jdk的方法,jdk是什么?没有这个类呀,所以可以任意使用方法
      

  11.   

    public class Three {
    public static void reverse(long num){
      String strNum=String.valueOf(num);
      int iLength=strNum.length();
      String strResult="";
      for(int i=0;i<iLength;i++){
       strResult+=strNum.charAt(iLength-i-1);
      }
      System.out.println(strResult);
     }

     public static void main(String[] args) {
      reverse(123);
     }}
      

  12.   

    第一题:不能用 jdk 是把 那就这样 :
        String[] str = {"a", "b", "c"};
    for(int c = str.length - 1; c >= 0 ; c --){
    System.out.println(str[c]);
    }
      //用for 循环就可以搞定的问题 
      

  13.   

    接上面, 结果是
    c
    b
    a
      

  14.   

    7楼的
     char[] str_char = str.toCharArray();这个算不算用到了jdk 提供的方法呢?
      

  15.   

    [Quote=引用 16 楼 haojia0716 的回复:]
    什么叫出现次数最多并且最大如果出现次数最多的不是最大值 是先保证次数最多还是先保证值最大
      

  16.   

    7楼的这个有个感觉有点错误哦
    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]);
        }
    }如果数组的长度够大的话,如果将这个 int[] source 改为 {1,3,6,7,7,7,9,9,9,6,5,20},的话就会发生数组下标越界的的异常
      

  17.   

    麻烦各位高手解释下count[source[i]]++是什么意思啊?
      

  18.   

    如果LZ是这样想的,那你以后可以不用再去面试了!
    LZ的回复让我觉得你对这两道面试题带有抵制的情绪。
    如果对题目有疑问不解是可以提出的。这也是考面试者的某些素质。
    对面试题的态度也就是对公司的态度,如果你没进公司就对公司有不好的态度~`````
      

  19.   

    就是暗示你用Javascript实现罗.
      

  20.   


    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来实现。
      

  21.   

    这位仁兄说得很有道理,说不定在考你知不知道javascript是什么或者javascript和JDK的关系而不是希望你能用JAVA解出来,不过如果出题的人真是这么想也挺搞笑的。
      

  22.   

    他们的意思应该是不让用jdk里面类似reverse()这样的方法,比如StringBuilder的reverse方法
      

  23.   

    如果当时你实在想不起来如果你会用C做也可以啊  而且还能让面试官知道你不竟会java而且C也还行