[cpp] Re: Cpp Digest, Vol 24, Issue 26

Chen Shuo giantchen at gmail.com
Mon Mar 20 20:54:06 CST 2006


看来不对哦。比如 m = 3,AB 串为 "BA" 时,有 bac 和 bca 两种情况,而你的程序算出 s = 1 了。

On 3/20/06, Feng Jiang <feng.a.jiang at gmail.com> wrote:
> 呵呵。有意思。刚才想了一下,是不是可以这样解决?
> 假设给定的字符串长度为m,就是那个小写字符串,例如abcd。
> 那么大写字符串T[]长度应该是m-1。
> 程序应该是这样的:
>
> int s = m!; //m的阶乘
> for(int i=0; i< m-1; i++) {
>   char c = T[i];
>   if( c == 'A' )
>     s  /= (i+2);
>   else
>     s = s* (i +1) / (i+2) ;
> }
> printf("%d\n", s);
>
> 这样子对吗?



More information about the Cpp mailing list