2016.9.22 搜狗面试

之前笔试觉得做得还不错,果然很快就通知我去面试,然而面试却很不理想。
我的自我介绍、项目介绍好像都没有引起面试官的兴趣。
而面试问的问题也跟我想象的有很大差异。

  1. 实现内存拷贝函数 void *memcpy(void *dst, const void *src, size_t n)
    讲真好久不接触C/C++和指针看到这种题我是有点懵,然后就一通瞎做,真是不应该……
    考察点:
  1. 首先判断dst、src是否有效(是否为NULL);
  2. 两块地址重叠的情况;
  3. 指针是无类型的,拷贝的时候应按字节拷贝,char正好是一个字节。
void *Memcpy(void *dst, const void *src, size_t size){
    char *psrc; 
    char *pdst; 
    if(dst == NULL || src == NULL){
        return NULL;
    }
    if((src < dst) && (char *)src + size > (char *)dst){
        // 自后向前拷贝
        psrc = (char *)src + size - 1; 
        pdst = (char *)dst + size - 1; 
        while(size--) { 
            *pdst-- = *psrc--; 
        } 
    } 
    else{ 
        psrc = (char *)src; 
        pdst = (char *)dst; 
        while(size--) { 
            *pdst++ = *psrc++; 
        } 
    } 
    return dst;
}
  1. json如果本身有问题,如何解析。例如key和value都用引号引起来,但是key和value本身也含有引号、冒号和逗号等。

  2. 模糊统计。统计一篇文章词频时,将字母组成相同的单词视为一个单词(如form和from),怎么做?如何用Map-Reduce完成这个工作?map都需要做什么工作,reduce又怎样安排?

我当时说用字母频统计的字典作为键值也是蠢哭了,回来稍微想一下,可以对每个字符串按字母序排,这样就能把字母相同的统计到一起去了……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 6,182评论 0 7
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 7,091评论 0 35
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 6,091评论 0 12
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,682评论 0 4
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 8,687评论 0 6