国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
字符子串 任意組合 遞歸

/************************************************************************/

/* 面試題:請編寫一個函數(shù),把字符串中的所有字符子串的各種組合形式全部都顯示出來。

 

  字符子串的長度范圍是從一個字符到字符串的長度。

  不管排列順序如何,只要兩種組合中的字符完全一樣,它們就是同一種組合。

  比如:給定字符串"hart",則"ha""har"是不同的組合,而"ha""ah"是相同的組合。

 

  排列方式:不以字符串多少為排列區(qū)分,而是以是否確定某一字符來確定字符子串

  hart作為字符串,則如下:

  h        ha  har hart hat hr hrt      ht

               a  ar   art  at

                                                  r  rt

                                                                 t

 

  可以看出:第一行全有h,第二行沒有h,全是art,第三行沒有ha,全是rt,第四行沒有har,就只有t

  如果第一行去掉 h,恰好是 第二行 第三行 第四行 的全部,正好是 3個字符art的組合,

  再黏上一個 h ,就成了新的組合。

  根據(jù)這樣的特點:我們設(shè)計一個遞歸算法

  1)從首字符到尾字符的各個字符,循環(huán)

  2)輸出被循環(huán)到的字符

  3)如果循環(huán)的字符 后面還有字符,遞歸;以后面的字符為起點,重復步驟(2)和步驟(3

  4)如果被循環(huán)到的字符后面沒有字符,跳出循環(huán)。

 

  畫圖的話,看成如下:以行為單位輸出,1表示此字符輸出

    h a r t             h a r t 

  h 1 . . .                      h 1 . . .

  a 1 1 . .    --   a 1 1 . .

  r 1 1 1 .                     r 1 1 . 1 //下一行返回后,本行往下一列進行,后面的依次類推

  t 1 1 1 1(return  t 1 1 1 1

                                                                    */

/************************************************************************/

 

#include <stdlib.h>

#include <stdio.h>

#include <iostream>

using namespace std;

 

int length;

char *out;

char str[]="hart";  //此法當有重復字母時,結(jié)果是錯誤的

int sum=0;

 

void DoCombine(char in[],char out[],int length,int rec,int start)//rec看成行,

{

       int i;

       for( i = start; i < length; i++)//i看成列

       {

              out[rec] = in[i];

              out[rec+1] =0;

              printf("%s\n",out);

              if(i< length-1)

                     DoCombine(in,out,length,rec+1,i+1);

       }

}

int main(int argc, char* argv[])

{

       length = strlen(str);

       out = (char *)malloc(length +1);

       DoCombine(str,out,length,0,0);

       getchar();

       return 0;

}

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用遞歸實現(xiàn)字符數(shù)組的反轉(zhuǎn)
深入解析最長公共子串
KMP算法的Next數(shù)組詳解
動態(tài)規(guī)劃常見實例詳解
String--常用方法列表
「算法總結(jié)」13 道題搞定 BAT 面試——字符串
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服