我必须找到对于给定单词可能的回文数字。
假设单词是aaabbbb
。我的方法是
- 醇>
准备一个不包含的哈希映射。每个字母出现的时间
对于我的例子,它将是
a--->3 b--->4
如果字符串的长度是偶数则没有。每个字母的出现应该是甚至形成给定单词的回文否 palindrome anagrams是0
如果字符串的长度是奇数,则最多一次出现的字母可以是奇数,其他字母应该是偶数。
以上两个步骤是为了找出某个单词可以形成回文的天气。
现在找不到回文符号,我应该采用什么方法?
答案 0 :(得分:5)
首先要注意的是,如果单词是一个奇数长度,那么必须有一个奇数出现的字符。如果单词是偶数长度,则必须没有出现奇数的字符。在任何一种情况下,您都在寻找可以安排多对字符的方法。由于订单很重要,您正在寻找排列的数量:
n =字符对的数量(aaaabbb将有3对,aabbcccc将有4对)
(n)!/(number_of_a_pairs!* number_of_b_pairs!* etc ..)
所以在aaaabbb案例中,你找到了aab的排列:
3!/ 2!1! = 3
baa = baabaab
aba = abababa
aab = aabbbaa
在aabbcccc的案例中,你找到了abcc的排列:
4!/ 2! = 12: ABCC ACBC ACCB BACC bcac BCCA CABC 氯化钙 CBAC 加拿大商业公司法 CCAB CCBA