我的采访者,问我如何有效地搜索字符串中第一次出现的字符。
我说使用哈希,但他想要一种内存有效的处理方法。对字符串进行排序并执行二进制搜索是不可能的,因为索引会丢失。
面试官似乎对我的回答不满意。还有什么我可以说的吗?
答案 0 :(得分:1)
为什么不直接使用指针搜索第一次出现。这是最有效的查找方式(只需要4或8个字节的数据)。
unsigned long findIndex(char ch){
char *str = "some really long; string; here";
char *ptr = str;
while(*ptr != ch || *ptr != '\0'){
ptr++;
}
return (unsigned long)(ptr - str)
}
计算科学的基本定律:您可以优化空间或优化运行时间。
软件工程的基本规律: BEEP “计算机科学家”所说的,找到甜蜜的中间点。