题目描述
给定一个只包含大写英文字母的字符串S,要求你给出对S重新排列的所有不相同的排列数。
如:S为ABA,则不同的排列有ABA、AAB、BAA三种。
输入描述
输入一个长度不超过10的字符串S,我们确保都是大写的。
输出描述
输出S重新排列的所有不相同的排列数(包含自己本身)。
用例
输入 ABA
输出 3
说明 无
输入 ABCDEFGHHA
输出 907200
说明 无
解题思路:
- 首先,我们需要计算字符串S中每个字符出现的次数。
- 然后,我们可以使用阶乘公式计算排列数。对于长度为n的字符串,其排列数为n!。但是,由于有重复字符,我们需要除以每个字符出现次数的阶乘。
- 最后,输出结果。
Java代码:
import java.util.Scanner