zoukankan      html  css  js  c++  java
  • 第四章小结

    第四章小结

    这一章跟之前的学的相比,对我来说显更加困难,先是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一样,跟着老师的思路一走,我也发现了我平时写代码一些不足的地方,老师是一部分一部分的解决的,但我总想着一下子就解决,这样反而容易思路受限。

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

  • 相关阅读:
    【HDOJ6701】Make Rounddog Happy(启发式合并)
    【HDOJ6731】Angle Beats(极角排序)
    【BZOJ1132】Tro(叉积)
    【CF1236D】Alice and the Doll(set)
    Storm
    Spark
    Python基础(2)
    数据库漫谈
    Python基础(1)
    C/C++链接过程相关
  • 原文地址:https://www.cnblogs.com/Lnnnn/p/10706002.html
Copyright © 2011-2022 走看看