进栈与出栈

问题描述:有四个元素abcd依次入初始为空的栈中,入栈之后可停留,可出栈。最后所有元素都出栈,请分析并写出所有可能的分别以a,b,c,d开头的出栈序列。

首先分析以a开头的出栈序列。序列前两位无非3种:ab,ac,ad。再分别分析这三种开头的序列分别对应着几种可能序列。

ab显然有abcd和abdc两种,ac有acbd和acdb两种,而ad只有adcb一种,因为在仅有a在栈外,bcd都在栈内的情况下,栈内从上到下的顺序只有dcb一种,这种情况比较特殊。因此以a开头的出栈序列共有abcd,abdc,acbd,acdb,adcb五种。

按照同样的方法可以得出以b开头的出栈序列有bacd,badc,bcad,bcda,bdca五种。

以c开头的出栈序列有cbad,cbda,cdba三种。

以d开头的出栈序列只有dcba一种。

从头到尾彻底理解KMP

posted @ 2018-08-12 11:32  洗盏更酌  Views(1567)  Comments(0Edit  收藏  举报