给定单词的可能回文字符数

Ros*_*han 3 algorithm math combinatorics palindrome anagram

我必须找到对于给定单词可能的回文数字.假设这个词是.aaabbbb我的方法是

  1. 准备一个不包含的哈希映射.每封信出现的时间

    对于我的例子,它将是

    a--->3
    b--->4
    
    Run Code Online (Sandbox Code Playgroud)
    1. 如果字符串的长度是偶数则没有.每个字母的出现应该是甚至形成给定单词的回文,否则回文字符的结果是0

    2. 如果字符串的长度是奇数,那么在最多一次出现的字母可以是奇数而其他字母应该是偶数.

上述两个步骤是为了找到给定单词可以形成回文的天气.

现在找不到回文字谜,我应该采用什么方法?

Bra*_*lls 5

首先要注意的是,如果单词是一个奇数长度,那么必须有一个奇数出现的字符.如果单词是偶数长度,则必须没有出现奇数的字符.在任何一种情况下,您都在寻找可以安排多对字符的方法.您正在寻找自订单以来的排列数量:

n =字符对的数量(aaaabbb将有3对,aabbcccc将有4对)

(n)!/(number_of_a_pairs!*number_of_b_pairs!*等..)

所以在aaaabbb案例中,你找到了aab的排列:

3!/ 2!1!= 3

baa = baabaab

aba = abababa

aab = aabbbaa

在aabbcccc案例中,你找到了abcc的排列:

4!/ 2!= 12:abcc acbc accb bacc bcac bcca cabc cacb cbac cbca ccab ccba