面試經典(22) 字串組合

2021-06-21 15:07:38 字數 838 閱讀 1476

題目:輸入乙個字串,輸出該字串中字元的所有組合。

舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。

假設我們想在長度為

n的字串中求

m個字元的組合。我們先從頭掃瞄字串的第乙個字元。針對第乙個字元,我們有兩種選擇:一是把這個字元放到組合中去,接下來我們需要在剩下的

n-1個字元中選取

m-1個字元;而是不把這個字元放到組合中去,接下來我們需要在剩下的

n-1個字元中選擇m

由於組合可以是

1個字元的組合,

2個字元的字元……一直到

n個字元的組合,因此在函式

void combination(char* string)

,我們需要乙個

for迴圈。另外,我們乙個

vector

來存放選擇放進組合裡的字元。

void combination(char *string)     

void combination(char *string ,int number , vector&result)

if(*string == '\0')

return ;

result.push_back(*string);

combination(string + 1 , number - 1 , result);

result.pop_back();

combination(string + 1 , number , result);

}

修改:新增if(strlen(string)

字串 面試題 01 09 字串輪轉

題目 字串輪轉。給定兩個字串s1和s2,請編寫 檢查s2是否為s1旋轉而成 比如,waterbottle是erbottlewat旋轉後的字串 示例1 輸入 s1 waterbottle s2 erbottlewat 輸出 true 示例2 輸入 s1 aa s2 aba 輸出 false 提示 字串...

面試筆記2(字串)

1.子串的定義時 串中任意個連續的字元組成的子串行,並規定空串是任意串的子串,任意串是其自身的子串。子串行則不要求字元連續,但順序與其在主串中相一致。2.字串末尾的 0意義同0,在c c 中0被轉化為bool型別的false,在條件語句中。3.printf語句在輸出字串時,將 0當做字串的結尾。4....

LeetCode 面試01 06 字串壓縮

字串壓縮。利用字元重複出現的次數,編寫一種方法,實現基本的字串壓縮功能。比如,字串aabcccccaaa會變為a2b1c5a3。若 壓縮 後的字串沒有變短,則返回原先的字串。你可以假設字串中只包含大小寫英文本母 a至z 示例1 輸入 aabcccccaaa 輸出 a2b1c5a3 示例2 輸入 ab...