字符a、b、c、d依次通过一个栈,按出栈的先后次序组成字符串,至多可以组成多少个不同的字符串?并分别写出它们。
【正确答案】:
14个。
DCBA CBAD CBDA CDBA BACD BADC BCAD BCDA BDCA ABCD ABDC ACBD ACDB ADCB。
【题目解析】:
栈的修改原则是后进先出。
d先出的情况有1个:dcba(dcba的顺序只能是d先出,再c出,再b出,后a出)
c先出的情况有3个:cbad cbda cdba (cba的顺序只能是c先出,再b出,后a出)
b先出的情况有5个:bacd badc bcad bcda bdca (ba的顺序只能是先b出,再a出)
a先出的情况有5个:abcd abdc acbd acdb adcb(a出后,若d先出,只能是再c出,后b出)