class Solution {
public:
vector<string> permutation(string S) {
}
};
面试题 08.07. 无重复字符串的排列组合
无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。
示例1:
输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]
示例2:
输入:S = "ab" 输出:["ab", "ba"]
提示:
原站题解
golang 解法, 执行用时: 60 ms, 内存消耗: 8.9 MB, 提交时间: 2021-06-01 10:53:27
func permutation(S string) []string { if S == "" { return []string{} } ans := make([]string, 0) backtrack([]byte(S), 0, &ans) return ans } func backtrack(b []byte, first int, ans *[]string) { if first == len(b) { *ans = append(*ans, string(b)) } for i := first; i < len(b); i++ { b[first], b[i] = b[i], b[first] backtrack(b, first+1, ans) b[i], b[first] = b[first], b[i] } }