題目:輸入乙個字串,輸出該字串中字元的所有組合。
舉個例子,如果輸入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...