亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:首頁 > 技術閱讀 >  每日一題:無重復字符串的排列組合

每日一題:無重復字符串的排列組合

時間:2024-02-14


題目:無重復字符串的排列組合



無重復字符串的排列組合。編寫一種方法,計算某字符串的所有排列組合,字符串每個字符均不相同。

示例1
 輸入:S = "qwe"
輸出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]

示例2

 輸入:S = "ab"
輸出:["ab", "ba"]


提示:

  • 字符都是英文字母。

  • 字符串長度在[1, 9]之間。

分析

經典的回溯問題,題目要求字符串的每個字符都不相同,我剛開始認為輸入字符串可能有重復的字符,所以加個段去重的代碼,最后提交時候發現不去重也可以測試通過。

代碼

class Solution {
public:
vector<string> permutation(string S) {
{// 多余的
sort(S.begin(), S.end());
auto it = std::unique(S.begin(), S.end());
S.resize(std::distance(S.begin(), it));
}
string path;
used.resize(S.size(), false);
dfs(S, path);
return ret;
}

vector<string> ret;
vector<bool> used;
void dfs(string& S, string& path) {
if (path.size() == S.size()) {
ret.push_back(path);
return;
}

for (int i = 0, size = S.size(); i < size; ++i) {
if (used[i]) continue;
used[i] = true;
path.push_back(S[i]);
dfs(S, path);
used[i] = false;
path.pop_back();
}
}

};


更多精彩推薦,請關注我們


代碼精進之路


  代碼精進之路,我們一起成長!


主站蜘蛛池模板: 禹城市| 天台县| 襄垣县| 东丽区| 砀山县| 霍州市| 凤山县| 英德市| 福泉市| 班玛县| 武宣县| 芜湖县| 报价| 长武县| 健康| 微山县| 鄂托克前旗| 玉环县| 新闻| 西青区| 靖州| 沐川县| 高雄市| 桐柏县| 莫力| 福建省| 利川市| 长春市| 兴和县| 甘肃省| 临漳县| 文化| 华容县| 怀仁县| 阳城县| 库车县| 松滋市| 九龙坡区| 沁阳市| 沭阳县| 巴青县|