访谈:如何有效地搜索字符串中第一个字符的出现?

时间:2013-11-08 22:23:41

标签: hash

我的采访者,问我如何有效地搜索字符串中第一次出现的字符。

我说使用哈希,但他想要一种内存有效的处理方法。对字符串进行排序并执行二进制搜索是不可能的,因为索引会丢失。

面试官似乎对我的回答不满意。还有什么我可以说的吗?

1 个答案:

答案 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 “计算机科学家”所说的,找到甜蜜的中间点。