概述:
有一天Jerry给Tom出了一道题来考验他。Jerry给了Tom一个长度为2n的只包含小写字母的字符串,让Tom将这个字符串任意挑选字符,将其分成两个等长的字符串a和b(对于一个si不能同时被选到a和b中),然后a要和reverse(b)相同(a和反转后的b相同),问这样的方案数有多少?Tom有些为难,所以请你来帮帮他吧。
输入一个正整数n,和一个长度为2n的字符串
输出方案数
如输入2 abba -> 4
分析
题意为一个字符串拆分成长度一样的两个,字符的先后顺序不得改变,若string1 == reverse(string2),方案数+1
如输入2 abba
- ab ba(1,2;3,4)
- ab ba(1,3;2,4)
- aa bb
- ba ab
所以输出为四
所以解题思路为在字符串中抽取n个字符,得到两个字符串
将字符串对比看是否符合条件,枚举Cn 2n次的结果即可得到最后结果