摘要: 题意:给出一个C语言加减法表达式,求出这个表达式的最终结构,以及各个变量的值,每个变量保证至出现一次,保证输入的字符串合法;输入:一串包含+、-和小写的26个英文字母;输出:表达式的结果,以及表达式中各变量的最终值;解题思路:一个合法的C语言表达式,只包含空格、操作符(+、-)、变量(a-z);首先要处理前缀(+、-)和后缀(+、-)使表达式可以计算;在处理前缀和后缀问题时要注意前后缀与变量之间的空格,像表达式(++ a- --b +c --)是合法的;所以可以用两个数组(char int)模拟两个栈,分别用来存放操作符以及变量值,然后再用一个数组(int)来记录变量的前后缀以及变量是否... 阅读全文
posted @ 2013-08-09 13:09 xien0 阅读(659) 评论(0) 推荐(0)
摘要: 题意:骑士在一个8*8的棋盘上移动,1-8代表行号,a-h代表列号,给出骑士的初始位置和目的位置,求骑士最少的移动步数;题目隐含一层意思(骑士移动规则是中国象棋的“马”的走法)输入:一串字符串,包含起始位置和目的位置;输出:骑士的最少移动步数;解题思路:看到最少,立马想到BFS,按层搜索,步数加1,最后输出总步数; 1 #include 2 #include 3 using namespace std; 4 //mat[][]是骑士移动的8个方向; 5 int mat[10][3]={{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{-2,1},{2,-1},{-2,-1} 阅读全文
posted @ 2013-08-08 15:20 xien0 阅读(290) 评论(0) 推荐(0)
摘要: 拓扑排序 阅读全文
posted @ 2013-08-08 15:05 xien0 阅读(189) 评论(0) 推荐(0)