、用C/C++来实现字符串的反转。比如:字符串”I am a good developer!”反转之后变成了”developer! Good a am I”。(只有单词反转,单词里的字母不反转)
要求 :1、不使用库函数
     2、算法尽量提高效率,尽量节省空间
     3、尽可能写出多的测试用例来验证你写的程序。2、用JAVA/C#来写一个栈。
   要求:尽可能提高算法的效率,尽可能节省空间。
   问题:1、如果有多个用户同时在使用这个栈,怎样保证它的线程安全
   2、怎样防止栈的自增问题,如果栈里面的数据量过大,会导致系统不稳定甚至崩溃,怎么对处理。3、如果要在手机上面设计一个金山词霸的程序,你会怎么实现,请写出你的算法及设计思想
 要求:尽可能提高效率与节省空间
 问题:1、请写出你主要实现的功能。
    2、对与你所要实现的功能请写出你的数据结构和算法。比如:
   词汇存储(写出你的数据结构和算法)
   词汇查询(写出你的数据结构和算法,以及具体的设计思想)
   其他功能(英英转换、汉英转换、其它语言字典等)
   扩展设计
 可以使用图、表来辅助说明。

解决方案 »

  1.   

    第一题:
    1 字符串用split()转成字符数组
    2 对字符数组首末互换(即arr[0]与arr[n-1]互换,arr[1]与arr[n-2]互换,以此类推arr[n/2]与arr[n/2]+1]互换)
    3 将转换后的字符数组转成字符串。
      

  2.   

    第三题:
    1、请写出你主要实现的功能。
    词汇查询 
    2、对与你所要实现的功能请写出你的数据结构和算法。
    用JAVA lusense实现,建索引到本地,然后就可以查询了。
      

  3.   

    1,方法1.用冒泡的思想 以“ ”为分隔符 把后面的单词向前冒泡
       方法2.整个句子全部反序 以“ ”为分隔符 每个单词反序
    2. java 的ArryList满足以上两个条件3.面向手机的 要考虑运算速度和存储   可以给保存单词的文本建多级索引(比如a,ab, 用电脑建索引比较快,考入到手机)PS:我给MP3写过和《梅花字典》一摸一样的程序(字库就是它的)祝你面试顺利!!!
      

  4.   

    wo kao,有几个人能进这样的公司
      

  5.   

    提点意见,首先不允许使用库函数,其次,你split之后直接从最后一个遍历,依次递减,根本不需要互换了吧
      

  6.   

    第一题
    C语言来搞
    先到字符串末尾
    然后挨个扫描
    碰到非空格wordLen++
    否则先处理wordLen
    然后把空格拷贝过去就行
    #include <malloc.h>
    main() {
        char *c = "my name is yaowei";
        int i=0;
        int j=0;
        int tempP=0;
        int wordLen=0;
        int k=0;
        char *p;
        while (c[i]) {
            i++;
        }
        p = (char *)malloc(i*(sizeof *c)+1);
        i--;
        for (j=i;j>=0;j--) {
            if (c[j]==32) {
                if(wordLen!=0){
                    for (k=j+1;k<=j+wordLen;k++){
                        p[tempP++]=c[k];
                    }
                }
                p[tempP++]=32;
                wordLen=0;
            }else{
                wordLen++;
            }
        }
        if (wordLen!=0) {
            for (k=0;k<wordLen;k++){
                p[tempP++]=c[k];
            }
        }
        p[tempP]='\0';
        printf("\n%s\n",p);
        printf("\n%s\n",c);
    }
    第二题
    参照java.util.Stack就行了
    主要还是实现push pop peek等方法
    同步的话jave有sychronized
    c#不清楚
    数据量的话stack里面加个判断
    如果数据量大的话
    给个异常抛出来吧
    第三题
    如果要在手机上面设计一个金山词霸的程序,你会怎么实现,请写出你的算法及设计思想 
    要求:尽可能提高效率与节省空间 
    问题:1、请写出你主要实现的功能。 
        2、对与你所要实现的功能请写出你的数据结构和算法。比如: 
      词汇存储(写出你的数据结构和算法) 
      词汇查询(写出你的数据结构和算法,以及具体的设计思想) 
      其他功能(英英转换、汉英转换、其它语言字典等) 
      扩展设计 
    词汇存储 用树来做吧 一个有几十个子结点的树
    查询啥的速度都比较快
    手机上主要考虑内存
    但查询方面来说的话
    还是树比较快
    跨多种语言的话
    没做过,不清楚,
    感觉能答上这第三个题的人可以去搞系统设计了
    不用写代码了
      

  7.   

    c/c++ 没搞过.java 还没学到 堆栈.J2me 没摸过.