第四章小结

第四章小结

这一章跟之前的学的相比,对我来说显更加困难,先是KMP我还没来得及全部吃透,又来了个稀疏矩阵。

下面是我写模式匹配时的代码,我个人觉得自己最弱的部分就是主函数前的准备工作,写的不够仔细,总是有小错误,比如,没有返回值啊,符号用错啊,下标和位置区分不开。

#include<iostream>
#include<string.h>
using namespace std ;

string s;
string t;
int ssize;
int tsize;
int next1[2000000];
        void nextsz(string t,int tsize)
        {
            next1[0] = -1;
            int k = -1;
            int j = 0 ;
            while(j < tsize-1)
            {
            if(k==-1||t[j]==t[k])
                {
                ++k;
                ++j;
                
                    next1[j] = k;
        
                }
               else 
                k = next1[k];
            }

        }
        
        int  kmp(string s,string t,int sszie,int tsize)
        {
            int j = 0;
            int i = 0;
            while(i<ssize&&j<tsize)
        {
            
                if(j==-1||s[i]==t[j])
            {
                i++;//匹配整体向前移;
                j++;
                
            }
            else 
            {
                 j = next1[j];
            }

            
        }
            
            
            if(j==tsize)
            {
                return  i-j+1;//返回模式串在主串的第一个下标;
            }
            else return 0;
        }
View Code

主函数,这个部分是我能够流畅写下的,一般不会有什么大问题。

 

int main()
{
    cin>>s;
    cin>>t;

    ssize =  s.size();
    tsize = t.size();
        nextsz(t,tsize);
        cout<<kmp(s,t,ssize,tsize)<<endl;

        
    
}
View Code

 

然后就是稀疏矩阵的实践题。一开始也有点迷茫,不知道怎么下手,后面上网重新理了一下稀疏矩阵的思路之后,终于可以下手了。

图片来自百度。

另外我想额外讲一下这周上机的时候老师跟我们一起完成 的那道AI的题目,就是从跟着老师一起打代码,好像对这个过程有不一样的体会,自己一些不确定的思路和可能会犯的错误,老师一讲就基本上能够解决,这是我觉得很神奇的一点,就好像有一种BUFF一样,跟着老师的思路一走,我也发现了我平时写代码一些不足的地方,老师是一部分一部分的解决的,但我总想着一下子就解决,这样反而容易思路受限。

总结:上周定下的打代码任务完成度不够,只是完成了作业最后的代码题,没有再多练习一下别的,然后希望能够在期末考之前,把每种算法都总结一下,然后附上相关的练习题,这是我的目标。

posted @ 2019-04-14 17:25  Lnnnnᐛ  阅读(93)  评论(1编辑  收藏  举报