问题描述
给出一个字符串,找到它的所有排列,注意同一个字符串不要打印两次。
示例如:
输入:“abb”
输出:[“abb”, “bab”, “bba”]
问题重点
关键点是重复元素的去重排列问题
主要考点
- 排列算法
- 去重逻辑
算法逻辑
- 获取并对字符串进行拆分及排序重组相关预处理
- 对字符串数组进行排列并重复此步骤进行筛选
- 设定置换元素index(默认为**-1**,代表不进行元素置换)
- 从数组最高位项向下依次递减获取对应的置换元素及其下标值
- 若当前位项元素(nums[i])大于待置换元素(nums[i-1]),则将index值更新为待置换元素项下标值并中止当前的循环置换操作。
- 对数组元素进行置换,原理同3所述。
- 重置后