编程之美--最短摘要的生成
来源:互联网 发布:js图片批量上传 编辑:程序博客网 时间:2024/05/01 12:35
题目:抽象点说,就是在一个字符串中,找一些目标字符串,找到包含所有目标字符串的最小字符串。题目虽然叫做最短摘要生成,但和实际的搜索snippet的计算还是有比较大的差距的。
解法:一种比较好的解法,策略还是使用双指针。
解法:一种比较好的解法,策略还是使用双指针。
算法的思想是采用两个指针,开始两个指针都指向缓冲区的头部,尾指针向后扫描,直到头指针和尾指针中间包含了全部的关键字,那么头指针向后移动,直到包含全部关键字这个条件失败,这时截取字串并和已取得的最小字串比较,如果小则替换。头指针、尾指针都向后一个位置(这点很重要,开始就忘记了移动头指针,导致程序出错),继续扫描。
另外,由于一个关键字可能重复多次,因此在判断是否包含全部关键字时要采用计数机制,才能保证查看的准确。这样只要头指针和尾指针扫描两次字符串就可以完成生成算法。
int nTargetLen=N+1;//设置目标长度为总长度加1int nLen=N;//初始指针int pbegin=0;//结束指针int pend=0;//目标数组的长度为Nint abstractStart=0;//目标摘要的起始地址int abstractEnd=0;//目标摘要的结束地址while(true){//假设包含所有的关键词,并且后面的指针没有越界,往后移动指针while(!isAllexist() && pend<N){pend++;}//假设找到一段包含所有关键词信息的字符串while(isAlliext()){if(pend-pbegin < nTareLen){nTargetLen=pEnd-pBegin;abstracStart=pbegin;abstartEnd=pEnd-1; //多包含了一个}pBegin++;}if(pEnd>=n) //注意是等于break;}
0 0
- 编程之美 最短摘要生成
- 编程之美之最短摘要生成的困惑
- 编程之美--最短摘要的生成
- 编程之美——最短摘要的生成
- 编程之美读书笔记--3.5 最短摘要的生成
- 编程之美--3.5最短摘要的生成
- 编程之美--最短摘要的生成
- 最短摘要的生成(编程之美)
- 编程之美-3.5最短摘要的生成
- 编程之美----3.5最短摘要的生成
- 《编程之美》——最短摘要的生成
- 编程之美-最短摘要的生成方法整理
- 编程之美读书笔记-最短摘要的生成
- 编程之美之最短摘要生成
- 编程之美--3.5最短摘要生成
- 编程之美--3.5最短摘要生成
- 读书笔记之编程之美 - 3.5 最短摘要的生成
- 编程之美: 第三章 结构之法 3.5最短摘要的生成
- 关于全局与静态变量的思考
- cocos2dx之弧度和角度的互换
- C谜题解释
- 用递推关系显性公式替代递归的编程方法
- LeetCode-Longest Common Prefix
- 编程之美--最短摘要的生成
- 子页面调用父页面中的方法
- 7个Web前端极其精美的动画效果模板
- volatile与transient
- centos 5.8 安装 jdk 1.7
- 无配置WCF客户端的一个简单到令人发指的实现方法
- cocos2d-x 从onEnter、onExit、 引用计数 谈内存泄露问题
- App内购
- erlang性能分析及进程监控工具