、用C/C++来实现字符串的反转。比如:字符串”I am a good developer!”反转之后变成了”developer! Good a am I”。(只有单词反转,单词里的字母不反转)
要求 :1、不使用库函数
2、算法尽量提高效率,尽量节省空间
3、尽可能写出多的测试用例来验证你写的程序。2、用JAVA/C#来写一个栈。
要求:尽可能提高算法的效率,尽可能节省空间。
问题:1、如果有多个用户同时在使用这个栈,怎样保证它的线程安全
2、怎样防止栈的自增问题,如果栈里面的数据量过大,会导致系统不稳定甚至崩溃,怎么对处理。3、如果要在手机上面设计一个金山词霸的程序,你会怎么实现,请写出你的算法及设计思想
要求:尽可能提高效率与节省空间
问题:1、请写出你主要实现的功能。
2、对与你所要实现的功能请写出你的数据结构和算法。比如:
词汇存储(写出你的数据结构和算法)
词汇查询(写出你的数据结构和算法,以及具体的设计思想)
其他功能(英英转换、汉英转换、其它语言字典等)
扩展设计
可以使用图、表来辅助说明。
要求 :1、不使用库函数
2、算法尽量提高效率,尽量节省空间
3、尽可能写出多的测试用例来验证你写的程序。2、用JAVA/C#来写一个栈。
要求:尽可能提高算法的效率,尽可能节省空间。
问题:1、如果有多个用户同时在使用这个栈,怎样保证它的线程安全
2、怎样防止栈的自增问题,如果栈里面的数据量过大,会导致系统不稳定甚至崩溃,怎么对处理。3、如果要在手机上面设计一个金山词霸的程序,你会怎么实现,请写出你的算法及设计思想
要求:尽可能提高效率与节省空间
问题:1、请写出你主要实现的功能。
2、对与你所要实现的功能请写出你的数据结构和算法。比如:
词汇存储(写出你的数据结构和算法)
词汇查询(写出你的数据结构和算法,以及具体的设计思想)
其他功能(英英转换、汉英转换、其它语言字典等)
扩展设计
可以使用图、表来辅助说明。
1 字符串用split()转成字符数组
2 对字符数组首末互换(即arr[0]与arr[n-1]互换,arr[1]与arr[n-2]互换,以此类推arr[n/2]与arr[n/2]+1]互换)
3 将转换后的字符数组转成字符串。
1、请写出你主要实现的功能。
词汇查询
2、对与你所要实现的功能请写出你的数据结构和算法。
用JAVA lusense实现,建索引到本地,然后就可以查询了。
方法2.整个句子全部反序 以“ ”为分隔符 每个单词反序
2. java 的ArryList满足以上两个条件3.面向手机的 要考虑运算速度和存储 可以给保存单词的文本建多级索引(比如a,ab, 用电脑建索引比较快,考入到手机)PS:我给MP3写过和《梅花字典》一摸一样的程序(字库就是它的)祝你面试顺利!!!
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、对与你所要实现的功能请写出你的数据结构和算法。比如:
词汇存储(写出你的数据结构和算法)
词汇查询(写出你的数据结构和算法,以及具体的设计思想)
其他功能(英英转换、汉英转换、其它语言字典等)
扩展设计
词汇存储 用树来做吧 一个有几十个子结点的树
查询啥的速度都比较快
手机上主要考虑内存
但查询方面来说的话
还是树比较快
跨多种语言的话
没做过,不清楚,
感觉能答上这第三个题的人可以去搞系统设计了
不用写代码了