乘法原理: 做一件事,完成它需要分成n个步骤,做第一 步有m1种不同的方法,做第二步有m2种不同的方法,……,做第n步有mn种不同的方法。那么完成这件事共有 N=m1×m2×m3×…×mn 种不同的方法。 和加法原理是数学概率方面的基本原理。
所以在碰到相关的和重复有关的问题的时候除了Hash的方法,可以一般都可以用动态规划的思想,但是,最好的办法就是在这个问题中把相关的东西抽象出来,根据问题的性质进行相应的操作。
像这个题目其实就可以通过动态规划加乘法原理解决,因为每个字符要么在序列中要么不在序列中,但是有效的绝对是在序列中但是不能重复,这个性质决定了可以使用乘法原理。其实还是要多练。