Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65549
  • 博文数量: 115
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-08 19:09
文章分类
文章存档

2015年(115)

我的朋友

发布时间:2015-08-06 16:44:31

假设模式串中包含"*"和"?", 判断给出的串是否和模式串匹配。   这个题是个表面容易的题,实际不不好做,没做过的话应该至少20分钟。 不可以简单的正向循环,否则类与abb与a*b的匹配就会出问题。 提供递归算法代码(codepad.org已验证) 非递归算法待补   算法描述: 定义如果匹配返回0,如果不匹配返回1. 用i表示当前处理的串下标,j表示当前处理的模式串的下标. 那么, 对于f(i,j)有           f(i,j) = f(i-1,j-1)......【阅读全文】

阅读(215) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:44:28

对字符串进行排序,在排序中,字符串 “bc”,“ad”,“ac”,“hello”,“xman”,“little”,“during”,“day”能够排序成 “ad”,"ac",“bc”,“during”,“day”,“hello”,“little”,   解法: 排序类问题无论任何变化,不管是排字符串还是按某种规则排序,本质都是一样,所变化的无非是元素的比较方式。 对于该题目同样适用。 使用快排,对于两个串,根据规则进行大小比较。   需要注意字符串交换位置的方法。 codepad.org已验证。 点击(此处)折叠或打开 #includ......【阅读全文】

阅读(217) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:44:24

有一个课程表,有课程名和编号,还有一些课程的先导课信息,参数是vector<string>,例如A:B C DB:CC:D:表示有4门课,课程名分别为A,B,C,D,然后再上A课程之前必须先上B,C,D,上B之前必须先上C,求出一个上课的顺序。   以前没做过这类。是简单的拓扑排序。 根据百度百科,基本解法如下:  (1)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它.  (2)从网中删去该顶点,并且删去从该顶点发出的全部有向边.  (3)重复上述两步,直到剩余的网中不再存在没有前趋的顶点为止.   代码codepad.org已验证 ......【阅读全文】

阅读(361) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:44:20

自己实现一个memcpy的函数。   需要考虑的地方在src和dest重叠的情况。 gcc编译有warning,运行通过。   点击(此处)折叠或打开 #include <stdio.h> #include <stdlib.h> void* mymemcpy(const void* src, void* dest, int size){     if(src == NULL || dest==NULL) return NULL;    &nb......【阅读全文】

阅读(731) | 评论(0) | 转发(0)

发布时间:2015-08-06 16:44:17

有一个环路,中间有N个加油站,加油站里面的油是g1,g2...gn,加油站之间的距离是d1,d2...dn,问其中是否能找到一个加油站,使汽车从这个加油站出发,走完全程。       计算辅助数组f(i),其含义为从i点开始到达i+1时,汽车所剩的油。有:              f(i) = g(i)-d(i) 若f(i)<0 则显然从i点出发不可能完成任务。     题目的O(n)解法依赖于以下结......【阅读全文】

阅读(231) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册