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 }
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) 改进