刷题-KMP算法
来源:互联网 发布:怎么做淘宝生意好起来 编辑:程序博客网 时间:2024/05/16 19:36
Talk is cheap,show me the code.
晚上写原理总结
class Rotation {public: bool chkRotation(string A, int lena, string B, int lenb) { // write code here A=A+A; if(lena!=lenb) return false; if(lena==0) return true; bool re=findMatch(A,B); return re; } vector<int> getNextArray(string match){ int len=match.size(); vector<int> next(len); if(len==1){ next[0]=-1; return next; } next[0]=-1; next[1]=0; int cn=0; for(int i=2;i<len;i++){ if(match[i]==match[cn]){ cn++; next[i]=cn; } else if(cn>0){ next[i]=cn; } else next[i]=0; } return next; } bool findMatch(string str,string match){ int lena=str.size(); int lenb=match.size(); int si=0; int mi=0; vector<int> next=getNextArray(match); while(si<lena&&mi<lenb){ if(str[si]==match[mi]){ si++; mi++; } else if(next[mi]==-1){ si++; } else{ mi=next[mi]; } } return mi==lenb; }};
阅读全文
0 0
- 刷题-KMP算法
- KMP算法详解 【KMP】
- 【KMP】KMP算法模板
- KMP hihoCoder1015 KMP算法
- kmp算法
- KMP算法
- KMP算法
- KMP算法
- KMP算法
- KMP 算法
- kmp算法
- KMP算法
- kmp算法
- KMP算法
- KMP算法
- kmp算法
- kmp算法
- KMP算法
- Hibernate中 Not binding factory to JNDI, no JNDI name configured(开发错误记录)
- nginx备忘
- 项目提交git之前要做的
- Python : expected an indented block错误
- java第六章-异常处理
- 刷题-KMP算法
- HDU 6069 Counting Divisors 【2017多校联赛4】
- java类加public和不加public
- 白话经典算法系列之十三 随机生成和为S的N个正整数——投影法
- FPGA vs GPU
- 关于文件写入的原子性讨论
- spark【例子】同类合并、计算(主要使用groupByKey)
- 医疗设备上会用到的小容量存储芯片
- selenium操作隐藏的元素