習題 字串的排列 解題思路 map

2021-10-05 16:48:42 字數 678 閱讀 5195

時間限制:c/c++ 1秒,其他語言2秒 空間限制:c/c++ 32m,其他語言64m 熱度指數:633870

本題知識點: 字串

動態規劃遞迴

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。

輸入乙個字串,長度不超過9(可能有字元重複),字元只包括大小寫字母。
遇見題目先考慮一下什麼思想,這個有優化子結構,和分治和貪心也不大對的上,所以很有可能是動態規劃。

動態規劃求最優解的時候,採用空間換時間的方法,從每一種可能的最後一步逆推選擇,得到樹狀結構每一條路線每一層的最優解。

這個雖然不是最優解,但是其實記錄的就是每個路線每一層,只不過這個就不需要選擇了,而是全留下。

這個問題同樣是樹狀層次性結構,假如輸入字串是abc,則具有三層結構。只不過這個是從內到外,最內層是a,從外層是abc的所有排列。不逆推了,順著推。

利用佇列,map,**如下:

class solution else

int i=0,j=0,k=0;

int count=1;

for(i=1;ifirst);

}return re;

}};

演算法題 字串的排列

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 fals...

Python習題 字串

一 python中的字串 1 介紹 字串可以包含數字 字母 中文字元 特殊符號,以及一些不可見的控制字元,如換行符和製表符。2 字串中的常見轉義字元 符號用途 在行尾時 續行符 反斜槓符號 單引號 雙引號 b退格 backspace e轉義 000空 n 換行 v 縱向製表符 t橫向製表符 r回車 ...

演算法題 字串的全排列

問題 編寫乙個函式,用它把字串中所有的字元的各種排列形式全部顯示出來,即用給定字元做全排列。如 比如給定字串 hat 函式輸出全排列 tha,aht,tah,ath,hta,hat.演算法如下 void dopermute char in,char out,int used,int length,i...