題目:無重複字串的排列組合。編寫一種方法,計算某字串的所有排列組合,字串每個字元均不相同。
示例1:
輸入:s = "qwe"
輸出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]
字元都是英文本母。
字串長度在[1, 9]之間。
解題思路:深度優先+貪心。每一層用for迴圈對已有字串逐個位置插入新字元,構造全部可能組合
原始碼:
char **list;
int cnt;
void proc(char *old, int len, char *add)
char *new = malloc(len + 2);//這裡對記憶體耗費比較大,直接基於old新增和剔除新字元,應該也可以。
for (int i = 0; i < len + 1; i++)
free(new);
}/**
* note: the returned array must be malloced, assume caller calls free().
*/char **permutation(char *s, int *returnsize)
; proc(t, 1, s + 1);
*returnsize = cnt;
return list;
}
leetcode無重複字串
無重複字串 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew...
leetcode 字串 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3解釋 因為...
leetcode 3 無重複的字串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...