摘要:
问题:很经典,也很难,理解了一个下午。。。终于把KMP算法思想弄明白了。改天继续看看。昨天写的,今天继续补充,KMP算法是由三个人发明的,KMP就是三个人名字的首字母。下面开始讲这个经典的算法:1、刚开始比较时,如果相等,下移;2、继续比较,遇到不相等的,假设位置为j,然后找j之前最大长度相等的前缀和后缀。这个怎么找不好理解,但理解了就很简单。用子串(现在作为主串)的第一个字符和j位置之前的第一个字符比较,如果相等,继续比较,第二个字符和j之前的第二个字符往后比较,。。。记录最大长度相等的前缀和后缀。3、如果没有,则主串和子串都增1。next数组的求法:首先,初始化。next[0]=-1;ne 阅读全文
摘要:
代码:#include <iostream>using namespace std;int main(){ char *s="helolophp"; char *s1="lop"; char *c=s1; int len=0; while(c[len]!='\0') { len++; } int i=0,j=0; for(;s[i]!='\0';i++) { if(s1[j]==s[i]) { j++; if(j==len) { cout<<"匹配成功的起始位置是:"<&l 阅读全文
摘要:
问题:字符串结尾记得加'\0';发现自己代码写的真烂,逻辑太简单了。。。代码:#include <iostream>using namespace std;int main(){ char *s1="hello"; char *s2="world"; char *c; char *c1; int len1,len2; len1=len2=0; c=s1; while(c[len1]!='\0') len1++; c=s2; while(c[len2]!='\0') len2++; c1=(cha 阅读全文
摘要:
问题:一定要记得保存指针的地址。代码:#include <iostream>using namespace std;int main(){ char s1[]="helloworld"; char s2[]="hellochina"; char *c1=s1; char *c2=s2; char *c3; int length1=0,length2=0; while(s1[length1]!='\0') length1++; while(c2[length2]!='\0') length2++; if(leng 阅读全文
摘要:
问题:STL学得真不过关啊 ,用到时就像不起来,while(cin.get(c))在结束时,先换行,即按下回车键,在按ctl+z键,代码是看了别人之后,自己重写的。STL还是要好好学,真的很有用,可以吧复杂的问题变得简单。代码:#include <iostream>#include <vector>using namespace std;int main(){ vector<char> s; char c; int beg,len; while(cin.get(c)) s.push_back(c); cout<<"please inpu 阅读全文
摘要:
第十九篇星光 接连三天的英语论文翻译,让我倦了,累了,于是为了放松,有接近疯狂的玩斗地主,整个神经接近崩溃的边缘。 从今天开始还是静心看我的代码吧,知道自己英语菜的不行。 这一个星期,生物钟乱了,听着那些无病呻吟的声音,想不明白,整出来,真没意义,生命因此而贬值。 今天还算比较正常的一天吧,崭新,就像星光。 还是作息规律些吧,努力前行! 找到属于自己的那颗星和光。 好好学吧,C++和PHP,加油,实际很简单! 阅读全文