第四章学习小结

  本章主要学习的是串和数组,首先是串的模式匹配算法,著名的匹配算法有BF算法和KMP算法,其中BF算法粗暴简单,时间复杂度为O(m*n);KMP算法较为复杂,时间复杂度为O(m+n)。老师以病毒感染检测的案例,让我大概明白了模式匹配,所以作业的串与模式匹配算法相对简单,我用的是BF算法,(KMP算法我还没来得及想...)代码如下:

#include <iostream>
#include <string>

using namespace std;

int Index_BF(string s, string t)//BF算法
{
    int i,j;
    i=0;
    j=0;
    while(i<s.length() && j<t.length())
    {
        if(s[i]==t[j])
        {
            ++i;
            ++j;
        }
        else 
        {
            i=i-j+1;
            j=0;
        }
    }
    if(j==t.length())    return i-t.length()+1;
    else return 0;
}

int main()
{
    string s,t;//String就是C++中的字符串,用双引号引起来的几个字符
    cin>>s>>t;
    cout<<Index_BF(s,t);
}
View Code

  然后是稀疏矩阵,这个矩阵在书上只有一句话...所以我在网上查阅了资料,借鉴了一下大佬博主的图解(生动又形象!),博客链接:https://blog.csdn.net/qq_35733751/article/details/80843589,开始时一头雾水,

然后感谢大佬的指点,我才明白是我只定义了结构体,没有任何的输出(可见我C++基础的扎实程度...)

  最后是最难的(我认为)AI核心代码,老师上课讲了个大概,着重讲了数组越界问题,因此我在做的时候没有出现差错,在分隔符方面用ASCII码(我总是想不到这方面)

can you代码如下:

 

  然后我学习了一下getchar(),getchar有一个int型的返回值。当程序调用getchar时.程序就等着用户按键。用户输入的字符被存放在键盘缓冲区, m=getchar(),需包含#include<string>中。直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCII码, m=getchar(),需包含#include<string>。

  总的来说,感觉这周学习效果不错,上个目标没有实现...(一直在啃QWQ),这周的新目标我想把上周的测验再总结,然后KMP算法和稀疏矩阵的十字链表我想查阅一下,并试试能不能独立写出来。

 

posted @ 2019-04-14 10:54  杨玉翔  阅读(140)  评论(1编辑  收藏  举报