本次实验(2周)要求:
1. LR(k)文法包括LR(0)/SLR(1)/LR(1)/LALR(1); 理解四种LR文法定义,利用编译工作台程序求出对应的LR分析表,判断文法是否是对应的文法,能用C++/Java实现移进-归约分析器实现自底向上分析。
2. 掌握Java的字符串处理技术和对应的集合框架(C++对应为string和stl库),熟练使用Java集合组件
3. 算法知识:最长回文子串(中心扩展的马拉车算法、最长公共子序列LCS), 矩阵快速幂来实现递推
4. 了解经典游戏的算法设计(这里主要是21点贪心模拟和24点游戏的深度优先搜索DFS)