自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 启发式搜索--八数码问题

八数码问题问题描述:八数码问题也称为九宫问题。在3×3的棋盘上摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格(数字表为0),与空格相邻的棋子可以移到空格中。需要解决的问题:给出一个初始状态和一个目标状态,求出从初始状态转变成目标状态的移动棋子的最少步数。启发式搜索原理:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好...

2019-10-16 21:08:40 2164

原创 TEST语言编译器--语法分析

TEST语言编译器 目录语法分析语法分析程序的功能是:对词法分析的结果,根据语法规则,将一个个单词符号组成语言的各种语言类。分析时发现有不合语法规则的符号,要将错误符号和性质报告给程序员(错误检测)。TEST语言语法规则详细规则参照原书附录 A.2规则变动:大部分语法规则和C语言相似,其中write语句定义为向变量输入值,read语句定义为读取表达式的值。for语句正则文法...

2019-10-14 18:45:07 2477

原创 TEST语言编译器--词法分析

词法分析词法分析时,依次读入源程序中的每个字符,依据语言的构词规则,识别出一个个具有独立意义的最小语法单位,即“单词”,并用某个单词符号来表示每个单词的词性是标识符、分界符还是数。TEST语言词法规则详细规则参照原书附录 A.1TEST语言的单词符号如下:标识符(identifier):字母打头,后接字母数字,用ID标识保留字(keyword) :if、while、for等, ...

2019-10-08 16:54:20 1848

原创 LeetCode 159.至多包含两个不同字符的最长子串

LeetCode 159.至多包含两个不同字符的最长子串详细题目题目分析题目理解没难度,比较典型的一道 滑动数组 题目,把握好表示状态就行。状态表示:数组中最多包含两个不同字符的状态,可以用一个列表(code中的c)存下数组中不同的字符,再存下各字符的数量(这里用字典存,code中的m)。用 lll 和 rrr 表示滑动数组 S[l:r)S[l:r)S[l:r) ,然后开始滑动数组。滑...

2019-10-07 09:59:03 1321

原创 LeetCode 115.不同的子序列

LeetCode 115.不同的子序列详细题目题目分析题目大致意思就是在主串中找不同子串的数量。思路比较明显是动态规划。令dp(i,j)dp(i, j)dp(i,j)表示S[i:]S[i: ]S[i:]中T[j:]T[j: ]T[j:]出现的次数(S为主串,T为匹配串)。则递推式有:dp(i,j)={dp(i+1,j),if S[i] == T[j]d...

2019-10-05 14:08:38 170

原创 LeetCode 51.N皇后

LeetCode 51.N皇后问题详细题目题目分析经典暴力枚举问题问题主要在于如何处理避免皇后互相攻击(皇后可以攻击同一行、列以及同一左斜线、右斜线)。通过搜索行来避免行冲突,列用数组标记列号来避免列冲突。左斜线和右斜线比较难表示。从图中可以看出,在同一左斜线上行标减去列标数值相同;在同一右斜线上行标加列标数值相同。因此用两个长度为2n的数组分别标记 r -c + n(加n用来...

2019-10-04 11:52:40 158

原创 组合数学--排列组合

排列组合无重排列从n个不同元素中取r个无重组合,并考虑顺序。记:AnrA_{n}^{r}Anr​ 或 PnrP_{n}^{r}Pnr​性质:Pnr=n!(n−r)!P_{n}^{r} = \frac{n!}{(n-r)!}Pnr​=(n−r)!n!​全排列Pnn=n!P_{n}^{n} = n!Pnn​=n!放球模型:把n个不同球放入r个不同盒子,每个盒子只能装一个球Pn...

2019-09-30 14:14:06 830

原创 TEST语言编译器--错误检测

错误检测由于所有过程都要有错误检测,所以把错误检测放到了最前面来编写分析原书中使用了标志位es来表示错误类型:标志位为0时没有错误,大于0时产生错误,并用es的值来表示不同错误。笔者最初使用类似方法,但是是通过返回字符串的形式,但这样显得很繁琐。这在词法分析中不明显,但语法分析时就比较明显了。例如:def declaration_list(): ... d = dec...

2019-09-29 12:18:07 431

原创 TEST语言编译器程序--说明

说明最近在上编译原理,理论性的东西有点枯燥,想搞点实践。加上学期末本来就要上编译原理实验,就兴起想提前把程序写完。TEST语言TEST语言是一种仿C语言,实现了一些简单的语法功能的编程语言,详细语法参照孙悦红编著的《编译原理及实现(第二版)》中关于TEST语言的介绍。原书中使用C语言编写了TEST语言的编译器以及TEST抽象机模拟器。笔者由于最近在学习Python,便使用Python编写...

2019-09-29 11:48:22 1495

原创 LeetCode 92.反转链表 ||

LeetCode 92.反转链表 II详细题目题目分析题目大概意思是反转链表的m到n的节点。解题思路大致就是记录下m前和n之后的断点,然后反转中间的链表,再接回原链表。代码代码写的逻辑稍微有点乱。。。...

2019-09-27 14:21:33 107

原创 LeetCode 207.课程表(循环删除入度为0的节点)

LeetCode 207课程表详细题目[link]https://leetcode-cn.com/problems/course-schedule/题目分析题目理解比较简单,可以建模成有向图,然后问题转化成有向图有无环。读完就想到了拓扑排序问题,可是太久没写了,有点忘了,最初就用DFS用时间戳去判环,可是写完就发现问题。后来还是决定用拓扑排序去做。我的拓扑排序可能有点不一样。我使用...

2019-09-27 13:43:01 400

原创 初写博客声明

一个计科本科生开始写博客的声明初衷很早之前就想写博客记录些东西,可是。。。懒,注册了博客一直搁置着。最近,写代码的时候发现不久前暑假学的知识,到现在也只记得学过,具体细节几乎忘光了,回去翻也翻了半天才找到。加上最近看到了一段关于写博客益处的视频,于是就重拾起了写博客的想法。说明大三了,不打算读研,想直接工作。对机器学习和深度学习方面比较感兴趣,这方面最近也比较火,竞争压力当然也比较大,对...

2019-09-27 12:48:08 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除