获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
给定一个只包含大写英文字母的字符串S,要求你给出对S重新排列的所有不相同的排列数。
如:S为ABA,则不同的排列有ABA、AAB、BAA三种。
输入描述
输入一个长度不超过10的字符串S,我们确保都是大写的。
输出描述
输出S重新排列的所有不相同的排列数(包含自己本身)。
题目解析
这个问题是一个典型的排列问题,也就是我们通常所说的全排列。全排列就是从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列。当m=n时,就是n个元素的全排列。
在这个问题中,我们需要找出给定字符串S的所有不同的全排列。由于字符串中的字符可能重复,所以我们需要使用一种方法来避免产生重复的排列。通常的做法是使用回溯法,并且在回溯的过程中进行剪枝,跳过重复的元素。
Java算法源码
import