[剑指offer] 27. 字符串的排列
生活随笔
收集整理的這篇文章主要介紹了
[剑指offer] 27. 字符串的排列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
輸入一個字符串,按字典序打印出該字符串中字符的所有排列。例如輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。輸入描述:
輸入一個字符串,長度不超過9(可能有字符重復),字符只包括大小寫字母。題目就是考察排列的算法,利用遞歸+回溯解決
注意去重
class Solution {public:vector<string> res;vector<string> Permutation(string str){if(str=="")return res;helper(str, 0, str.length() - 1);sort(res.begin(),res.end());return res;}void helper(string &str, int beg, int end){set<char> hasSwap;if (beg >= end)res.push_back(str);elsefor (int i = beg; i <= end; i++){if (hasSwap.find(str[i]) == hasSwap.end()){hasSwap.insert(str[i]);swap(str[i], str[beg]);helper(str, beg + 1, end);swap(str[i], str[beg]);}}} };?
轉載于:https://www.cnblogs.com/ruoh3kou/p/10081121.html
總結
以上是生活随笔為你收集整理的[剑指offer] 27. 字符串的排列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Swagger 官方 Starter 配
- 下一篇: Spring Boot 永远滴神!10分