輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。
輸入乙個字串,長度不超過9(可能有字元重複),字元只包括大小寫字母。這是個遞迴求解的問題。對於字串的排列問題。如果能生成n-1個元素的全排列,就能生成n個元素的全排列。對於只有1個元素的集合,可以直接生成全排列。全排列的遞迴終止條件很明確,只有1個元素時,迴圈終止。
思路:
把乙個字串看成兩部分組成:第一部分為第乙個字元,第二部分為後面的所有字元。
首先求出所有可能出現在第一位置的字母,即begin與後面所有與它不同的字母進行交換
固定第乙個字母,求後面字母的全排序,此時仍把後面的字元看成兩部分,第乙個字元和後面的字元,然後重複上述步驟。(遞迴)
//字串的排列
void permutationcore(string str,int pos,vector& ret)
for(int i=pos; ipermutation(string str)
return ret;
}
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,「student. a am i」。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是「i am a student.」。cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?
翻轉單詞順序,首先找到每個單詞,然後進行翻轉。
這裡利用str的基本操作,乙個字母乙個字母進行處理
//翻轉單詞順序列
//乙個乙個字母進行處理
string reversesentence(string str)
else
}ret = tmp +ret;
return ret;
}
翻轉單詞順序列
最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student.ca...
翻轉單詞順序列
牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a student....
翻轉單詞順序列
題目描述 牛客最近來了乙個新員工fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事cat對fish寫的內容頗感興趣,有一天他向fish借來翻看,但卻讀不懂它的意思。例如,student.a am i 後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是 i am a stu...