update dir
This commit is contained in:
@@ -366,29 +366,6 @@ char *trim_number(char *source){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 字符串原地压缩
|
|
||||||
|
|
||||||
题目描述:“abeeeeegaaaffa" 压缩为 "abe5ag3f2a",请编程实现。
|
|
||||||
|
|
||||||
这道题需要注意:
|
|
||||||
1. 单个字符不压缩
|
|
||||||
2. 注意考虑压缩后某个字符个数是多位数(超过10个)
|
|
||||||
3. 原地压缩最麻烦的地方就是数据移动
|
|
||||||
|
|
||||||
|
|
||||||
这是使用2个指针,一前一后,如果不相等,都往前移动一位;如果相等,后一位变为数字2,且移动后面的指针一位,任然相等则数字加1,不相等
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
char *compress(const char *src,char *dest){
|
|
||||||
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
上面的压缩算法可以看到,压缩算法的`效率`验证依赖`给定字符串的特性`,如果'aaaaaaaa....aaa' 这样特征的字符串,使用上面的压缩算法,压缩率接近100%,相反,可能会的0%的压缩率。
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 字符串中找出连续最长的数字串
|
## 字符串中找出连续最长的数字串
|
||||||
|
|
||||||
@@ -456,7 +433,6 @@ int longest_continuious_number(const char *input,char *output){
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 求最大连续递增数字串
|
## 求最大连续递增数字串
|
||||||
|
|
||||||
如“ads3sl456789DF3456ld345AA”中的“456789”就是所求。这道题在上一道题目的基础上增加了数字要递增的条件。思路跟上面差不多,碰到不递增的数字就相当于第二个数字串了。
|
如“ads3sl456789DF3456ld345AA”中的“456789”就是所求。这道题在上一道题目的基础上增加了数字要递增的条件。思路跟上面差不多,碰到不递增的数字就相当于第二个数字串了。
|
||||||
@@ -520,6 +496,32 @@ char *substr_count(const char *src, const char *substr, int *count)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 字符串原地压缩
|
||||||
|
|
||||||
|
题目描述:“abeeeeegaaaffa" 压缩为 "abe5ag3f2a",请编程实现。
|
||||||
|
|
||||||
|
这道题需要注意:
|
||||||
|
1. 单个字符不压缩
|
||||||
|
2. 注意考虑压缩后某个字符个数是多位数(超过10个)
|
||||||
|
3. 原地压缩最麻烦的地方就是数据移动
|
||||||
|
|
||||||
|
|
||||||
|
这是使用2个指针,一前一后,如果不相等,都往前移动一位;如果相等,后一位变为数字2,且移动后面的指针一位,任然相等则数字加1,不相等
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
char *compress(const char *src,char *dest){
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
上面的压缩算法可以看到,压缩算法的`效率`验证依赖`给定字符串的特性`,如果'aaaaaaaa....aaa' 这样特征的字符串,使用上面的压缩算法,压缩率接近100%,相反,可能会的0%的压缩率。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 请编写能直接实现strstr()函数功能的代码。
|
## 请编写能直接实现strstr()函数功能的代码。
|
||||||
|
|
||||||
> strstr(str1,str2) 判断str2是否是str1的子串。
|
> strstr(str1,str2) 判断str2是否是str1的子串。
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ struct ListNode{
|
|||||||
};
|
};
|
||||||
|
|
||||||
//函数的声明如下:
|
//函数的声明如下:
|
||||||
void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);
|
void deleteNode(ListNode* pListHead, ListNode* pToBeDeleted);
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
|
|
||||||
|
|
||||||
#### 要求设计一个DNS的Cache结构,要求能够满足每秒5000以上的查询,满足IP数据的快速插入,查询的速度要快。
|
## 要求设计一个DNS的Cache结构,要求能够满足每秒5000以上的查询,满足IP数据的快速插入,查询的速度要快。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 设计一个系统处理词语搭配问题
|
||||||
#### 设计一个系统处理词语搭配问题
|
|
||||||
|
|
||||||
设计一个系统处理词语搭配问题,比如说 中国 和人民可以搭配,
|
设计一个系统处理词语搭配问题,比如说 中国 和人民可以搭配,
|
||||||
则中国人民 人民中国都有效。要求:
|
则中国人民 人民中国都有效。要求:
|
||||||
@@ -19,10 +18,10 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 任务调度
|
## 任务调度
|
||||||
|
|
||||||
系统有很多任务,任务之间有依赖,比如B依赖于A,则A执行完后B才能执行
|
系统有很多任务,任务之间有依赖,比如B依赖于A,则A执行完后B才能执行
|
||||||
(1)不考虑系统并行性,设计一个函数(Task *Ptask,int Task_num)不考虑并行度,最快的方法完成所有任务。
|
(1)不考虑系统并行性,设计一个函数`(Task *Ptask,int Task_num)`不考虑并行度,最快的方法完成所有任务。
|
||||||
(2)考虑并行度,怎么设计
|
(2)考虑并行度,怎么设计
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -41,14 +40,13 @@
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
#### 设计一种内存管理算法
|
## 设计一种内存管理算法
|
||||||
|
|
||||||
|
|
||||||
相关的问题:
|
相关的问题:
|
||||||
|
|
||||||
##### 请编写实现malloc()内存分配函数功能一样的代码
|
* 请编写实现malloc()内存分配函数功能一样的代码
|
||||||
|
* 用C语言实现函数memmove()函数
|
||||||
##### 用C语言实现函数memmove()函数
|
|
||||||
|
|
||||||
```
|
```
|
||||||
void * memmove(void *dest, const void *src, size_t n)
|
void * memmove(void *dest, const void *src, size_t n)
|
||||||
@@ -61,11 +59,11 @@ memmove()函数的功能是拷贝src所指的内存内容前n个字节到dest所
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### A向B发邮件,B收到后读取并发送收到,但是中间可能丢失了该邮件,怎么设计一种最节省的方法,来处理丢失问题。
|
## A向B发邮件,B收到后读取并发送收到,但是中间可能丢失了该邮件,怎么设计一种最节省的方法,来处理丢失问题。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### 设计一种算法求出算法复杂度
|
## 设计一种算法求出算法复杂度
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user