Suffix_Array模板重置版
2017-02-04 14:43
316 查看
void consturct_sa(char *s,int *sa) { for(int i=0;i<=len;i++) { sa[i]=i; rnk[i]=i<len?int(s[i]):-1; } for(k=1;k<=len;k*=2) { sort(sa,sa+1+len,cmp); tmp[sa[0]]=1; for(int i=1;i<=len;i++) if(cmp(sa[i-1],sa[i])) tmp[sa[i]]=tmp[sa[i-1]]+1; else tmp[sa[i]]=tmp[sa[i-1]]; for(int i=0;i<=len;i++) rnk[i]=tmp[i]; } return; } void construct_lcp(char *s,int *sa,int *lcp) { for(int i=0;i<=len;i++) rnk[sa[i]]=i,lcp[i]=0; lcp[sa[0]]=0; int h=0; for(int i=0;i<len;i++) { int j=sa[rnk[i]-1]; if(h>0) h--; while(i+h<len && j+h<len && s[i+h]==s[j+h]) h++; lcp[rnk[j]]=h; } return; }
相关文章推荐
- angular2 开发起步。
- PHP中的0,‘’,null和false原来是一样的?!
- CAKeyframeAnimation-关键帧动画
- 浅尝超融合之Nutanix(下)安装篇
- JNI资源释放
- (转)移动互联加速金融科技的渗透 中国将成为全球最大智能投顾市场
- eventBus 与fragment
- NodeJS
- 数据化运营(一)-概念
- (摘)解答Excel之规划求解
- SpringMVC访问静态资源的方法
- 单点登录-待续
- Android之Appcation使用
- 英语总结-付金田-2017年2月3日
- Ubuntu 16.04搭建php5.6 Web服务器环境
- 初识Axure
- Android从相册选择图片剪切和上传
- 浏览器对象模型(Browser Object Model)
- 简单的Filter实现
- Android开发编码规范之注释(二)