Ros*_*han 3 algorithm math combinatorics palindrome anagram
我必须找到对于给定单词可能的回文数字.假设这个词是.aaabbbb我的方法是
准备一个不包含的哈希映射.每封信出现的时间
对于我的例子,它将是
Run Code Online (Sandbox Code Playgroud)a--->3 b--->4
如果字符串的长度是偶数则没有.每个字母的出现应该是甚至形成给定单词的回文,否则回文字符的结果是0
如果字符串的长度是奇数,那么在最多一次出现的字母可以是奇数而其他字母应该是偶数.
上述两个步骤是为了找到给定单词可以形成回文的天气.
现在找不到回文字谜,我应该采用什么方法?
首先要注意的是,如果单词是一个奇数长度,那么必须有一个奇数出现的字符.如果单词是偶数长度,则必须没有出现奇数的字符.在任何一种情况下,您都在寻找可以安排多对字符的方法.您正在寻找自订单以来的排列数量:
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