• 2005年Baidu笔试试题及参考答案


     1 //实现 void delete_char(char * str, char ch);
     2 //把str中所有的ch删掉 
     3 #include <iostream>
     4 #include <stdio.h>
     5 using namespace std;
     6 
     7 void delete_char(char* str,char ch)
     8 {
     9     int length=strlen(str);
    10     int index=0;
    11     char* sb=(char *)malloc(sizeof(char)*(length+1));
    12     if(length>0)
    13     {
    14         memcpy(sb,str,length);
    15         sb[length]='\0';
    16     }
    17     
    18     for(int i=0;i<length;i++)
    19     {
    20         if(sb[i]!=ch)
    21         {
    22             str[index++]=sb[i];
    23         }
    24     }
    25     str[index]='\0';
    26     free(sb);
    27 }
    28 int main()
    29 {
    30     char s[]="adosfasodhgoafdhgoauhdfajsdofjqwefr";
    31     delete_char(s,'a');
    32     printf("%s\n",s);
    33     system("pause");
    34     return 1;
    35 }

    3.搜索引擎的日志要记录所有查询串,有一千万条查询,不重复的不超过三百万
     要统计最热门的10条查询串. 内存<1G. 字符串长 0-255
     (1) 主要解决思路 //具体用词和原题不大一样
     (2) 算法及其复杂度分析

    题目考察两个方面内容,一个是大数据量集中的数据空间映射

    第二个知识点就是提取10条最热门的查询串……

    针对第一个问题,很容易让人联想到hash的功能,从一个大的样本数据范围映射到小的样本空间中。

    至于如何设计hash(string-->int),这个在题目中不需要做过多的说明,毕竟百度需要的是思路,考察你对数据结构和算法的理解程度。

    第二个问题,就是典型的大堆排序,提取最大的N条记录。

    有字典,设计一个英文拼写纠正算法 (1) 思想 (2) 算法及复杂度 (3) 改进

    作者:W.M.steve
    出处:http://www.cnblogs.com/weisteve/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    [C++] static member variable and static const member variable
    [C++] const inside class VS const outside class
    [C++] OOP
    [C++] Function Template
    [C++] right value reference
    [C++] advanced reference
    [C++] const and char*
    [C++] c Struct VS c++ Struct
    [C++] decltype(auto) C++ 11 feature
    easyui-validatebox 的简单长度验证
  • 原文地址:https://www.cnblogs.com/weisteve/p/2200154.html
Copyright © 2020-2023  润新知