早上8:00整,我们又又又来到了这与我们“亲爱”的Quanzhou No.1 High School有长达20个英文字符的最长公共子序列的Changzhou No.1 High School。
上午
栈 and 深搜。
栈
栈是一种基本数据结构。 是一种操作受到限制的线性表:只能在一端进行读写操作,这一端称为栈顶。
栈经典题目
思路一 O(nm)(m为表达式中符号的数量):
不断查找表达式中运算符最高级的那个,再计算这个a f b(其中a,b为数字,f为字符)的式子,直到表达式中没有字符为止。(具体代码就不写了,其实是懒得打了)
思路二 O(n):
构造一颗表达式树,再深搜求解。
思路三 O(n):
1设数组保存后缀表达式,设运算符栈。
从左向右扫描表达式字符串:
2遇到数字时,将数字添加到后缀表达式
3遇到运算符时,入栈条件为:栈空,或该运算符优先级比栈顶运算符优先级高,或者栈顶是'(‘。只有不满足该条件,则一直出栈。出栈的运算符添加到后缀表达式。
4扫描结束后若栈中有运算符,都出栈,加入后缀表达式。
可以预先在字符串末尾加上一个优先级最低的’)’,以促使运算符栈中的运算符都出栈。
代码
深搜
十分基础,就不说了。
下午
打题目