- 相關推薦
程序員面試題精選100題-字符串的組合[算法]
題目:輸入一個字符串,輸出該字符串中字符的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。
分析:在本系列博客的第28題《字符串的排列》中,我們詳細討論了如何用遞歸的思路求字符串的排列。同樣,本題也可以用遞歸的思路來求字符串的組合。
假設我們想在長度為n的字符串中求m個字符的組合。我們先從頭掃描字符串的第一個字符。針對第一個字符,我們有兩種選擇:一是把這個字符放到組合中去,接下來我們需要在剩下的n-1個字符中選取m-1個字符;而是不把這個字符放到組合中去,接下來我們需要在剩下的n-1個字符中選擇m個字符。這兩種選擇都很容易用遞歸實現。下面是這種思路的參考代碼:
void Combination(char* string)
{
if(string == NULL)
return;
int length = strlen(string);
vector
for(int i = 1; i <= length; ++ i)
{
Combination(string, i, result);
}
}
void Combination(char* string, int number, vector
{
if(number == 0)
{
vector
for(; iter < result.end(); ++ iter)
printf("%c", *iter);
printf(" ");
return;
}
if(*string == 主站蜘蛛池模板: www色欧美| 国产在线永久视频| 欧美激情一区二区三区在线视频| 日本综合视频| 国产一区在线播放av| 无码精品视频一区二区三区| 国产日韩av免费在线观看| 亚洲精品乱码久久久久久花季 | 亚洲欧美在线看| www.com黄色片| 免费无码一区无码东京热| 久久综合精品国产二区无码| 欧美日韩一区二区三区免费视频| 四虎成人精品永久免费av九九| 天天综合色天天综合色hd| 偷自拍亚洲视频在线观看99 | 午夜精品免费视频| 久久精品伊人一区二区三区| 国产成人无码免费看片软件| 免费的性视频越黄越好| 国产人澡人澡澡澡人视频| 人人妻人人澡人人爽欧美精品 | 丁香综合在线| 色诱av在线| 一级在线| 成年无码动漫av片在线尤物网站| 久久精品日日躁夜夜躁| 国产高潮久久久久久绿帽| 性中文字幕| 国产一卡2卡三卡4卡芒果| 美女裸免费观看网站| 亚洲成a人片在线观看www| 国产乱了实正在真| 亚洲精品久久一区二区三区| 日本少妇做爰免费视频软件| 玩两个丰满老熟女| 国产日韩一区二区三区在线观看| 国语av在线| 亚洲肉体裸体xxxx137| 99re视频精品| 亚洲人成电影在线观看网色|