将晨的博客

项目/LeetCode/学习笔记皆在https://github.com/FuGaZn,浏览之余求一Star

软件需求——需求基础

基本概念 需求定义(IEEE): (1)用户为了解决问题或达到某些目标所需要的条件或能力。 (2)系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的的要求而需要具备的条件或能力。 (3)对(1)或(2)中的条件或能力的一种文档化表述。 问题域:要解决问题,就需要改变现实中某些实...

2018-11-19 19:06:39

阅读数 68

评论数 0

第四章 LR二义文法的处理 [补]

二义性(ambiguous)就是构造文法分析表中出现的移入/归约冲突或归约/归约冲突 二义文法的解决通常是通过增加附加条件的方法。 用优先级和结合性解决冲突 比如以下文法: E -> E + E | E * E | ( E ) | id 这个文法存在二义性,因为没有指定*和+...

2018-11-15 18:35:31

阅读数 72

评论数 0

第六章 中间代码生成

文章目录三地址码表达式的翻译表达式中的运算数组元素寻址条件表达式中的短路回填 三地址码 格式: x = y op z 三地址码的右边只能有一个操作符 每个三地址码语句包含三个地址:两个是操作数,一个是结果 三地址码的类型: 最后三行是函数 注意:只有if、goto语句,不存在while/for等...

2018-11-15 16:51:49

阅读数 102

评论数 0

第五章 语法制导

文章目录概述语法制导定义 概述 本章继续2.3节的主题,使用上下文无关文法来引导对语言的翻译。本章讨论的翻译技术在第六章用于类型检查和中间代码生成。 我们把一些属性附加到代码语言构造的文法符号上。语法制导定义通过与文法产生式相关的语义规则来描述属性的值。 语法制导定义 用于将语义规则和产生式关联的...

2018-11-15 15:02:52

阅读数 71

评论数 0

62.不同路径(Unique Paths)

题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 说明:m 和 n 的值均不超过 100。 解题思路: 用动...

2018-11-14 16:33:13

阅读数 93

评论数 0

65.有效数字(Valid Number)

题目描述 验证给定的字符串是否为数字。 例如: “0” => true " 0.1 " => true “abc” => false “1 a”...

2018-11-14 16:25:12

阅读数 54

评论数 0

第三章 词法分析

文章目录Token和正则表达式有穷自动机状态转换图有穷自动机DFANFA转换RE->NFA分解法Thumpson算法NFA->DFADFA->DFA° Token和正则表达式 Token(词法单元)的...

2018-11-14 14:54:56

阅读数 59

评论数 0

第二章 语言和文法——由语言构造文法

概论 由语言构造文法的常用方法有4个: 对称法 逐步求精法(分解法) 等价法 电路状态转换法 还有第五种是混合法,是将上面四种方法综合使用的方法。 下面将配合例题依次讲解四种方法。 对称法 ...

2018-11-13 21:10:09

阅读数 502

评论数 0

第二章 语言和文法

文章目录Alphabet & String乘积Product和闭包Closure:文法推导归约文法范式0-type范式1-type范式2-type范式3-type范式 Alphabet & Strin...

2018-11-13 20:57:06

阅读数 85

评论数 0

第一章 引论

什么是编译器? [广义]编译器就是一个程序,它可以阅读以某种语言编写的程序,并把它翻译成一个等价的、用另一种语言编写的程序。编译器的重要任务之一就是报告它在翻译过程中发现的源程序中的错误。 [狭义]把人类更容易理解和使用的高级语言转化为计算机能“理解”和运行的机器语言(或者较为接近的汇编语言)。...

2018-11-13 19:24:51

阅读数 47

评论数 0

第四章 语法分析(下)——LR文法

在LR(k)文法中,L指对输入进行从左到右的扫描,R表示反向构造一个最右推导序列。k表示在做出语法分析决定时向前看k个输入符号。 常用的LR(k)文法包括: - SLR:简单LR - LR(1):规范LR - LALR:向前看LR(Look ahead)

2018-11-13 11:30:30

阅读数 294

评论数 0

第四章 语法分析(上)——LL(1)文法

文章目录概述LL(1)文法LL(1)文法的判定消除左递归提取左公因子First集合Follow集合预测分析表的构造表驱动推导实例 概述 语法分析器是编译器的核心,语法分析器从词法分析器获得一个由词法单元组成的串,并验证这个串可以由源语言的文法生成。 语法分析器大体上可以分为三种类型:通用的、...

2018-11-13 11:15:27

阅读数 139

评论数 0

编译原理笔记 导言和目录

本学期编译原理的学习也差不多快结束了,在学习过程中也做了不少笔记。 为了准备即将来到的考试,我想把学习笔记再整理一遍。借此机会创建了这个专栏——为了满足创建专栏之前必须发布15篇以上的原创文章,我还特地去翻了LeetCode把陈年老题拿出来拾掇成博客(对我这种懒病来说真是太惨了) 编译原理学习...

2018-11-12 18:49:39

阅读数 117

评论数 0

55.跳跃游戏(Jump Game)

题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位...

2018-11-12 18:28:03

阅读数 134

评论数 0

52.N皇后II(N-Queens II)

题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n,返回 n 皇后不同的解决方案的数量。 解题思路 嗯,这题就是上一题(51.N皇后)的翻版,上一题要求输出所有解法,这一题却只要求数量就行了。 所以。。。当然是选择在51题...

2018-11-12 18:17:21

阅读数 67

评论数 0

51.N皇后(N-Queens)

题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。 示例: 输入: 4...

2018-11-12 18:11:20

阅读数 92

评论数 0

45. 跳跃游戏II(Jump Game II)

题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 ...

2018-11-01 19:06:06

阅读数 84

评论数 0

42. 接雨水(Trapping rain water)

题目描述 LeetCode.cn地址:https://leetcode-cn.com/problems/trapping-rain-water/ LeetCode地址:https://leetcode.com/problems/trapping-rain-water/ 思路 首先求出最大值...

2018-11-01 18:58:24

阅读数 28

评论数 0

2018/10学习笔记[更新中]

2018/10学习笔记[更新中] 使用meavn搭建一个模板java项目 https://github.com/FuGaZn/Notebook/blob/master/其他/maven.md 把一个已有项目连接到GitHub上 https://github.com/FuGaZn/Noteb...

2018-10-31 20:59:13

阅读数 70

评论数 0

最长回文子串(Longest Palindromic Substring)

最长回文子串(Longest Palindromic Substring) 给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文串。 样例 给出字符串 "abcdzdcab",它的最长回文子串为 "cdzdc"...

2017-08-01 16:32:45

阅读数 800

评论数 0

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