題目來自劍指offer
題目(1):集合元素的全排列,只處理數字全不同的情況
思路:全排列
屬於線性遞迴,遞迴一次確定乙個位置的資料,直到所有位置全被處理為止。
注意:(1)在確定乙個位置時,由於該位置的資料有多種,因此需要使用for迴圈。
(2)程式裡面沒有使用臨時陣列,而是通過陣列元素交換的方式獲得該位置的資料的。
(3)在確定乙個位置時,待交換資料的起點是從該位置開始,一直到陣列結束。
**:
#include using namespace std;
void swap(int& a,int& b)
void perm(int narr,int nlen,int nstart)
void combine(int narr,int nlen,int nstart,int nnext,int ncount)
cout
if (ncount == nresult.size())
nresult.push_back(narr[nstart]);
combine(narr,nlen,nstart + 1,nresult,ncount);
nresult.pop_back();
combine(narr,nlen,nstart + 1,nresult,ncount);
}void combine(int narr,int nlen)
}int main()
; combine(narr,nlen);
system("pause");
return 1;
}
思路(3):
**:
#include using namespace std;
void swap(int& a,int& b)
void combine(int narr,int nlen,int nstart,int nnext)
{ if (nstart > 0)
{ for (int i = 0;i < nstart;i++)
{ cout<
每日一題 87 字串過濾
題目來自網上 題目描述 通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串過濾程式,若字串中出現多個相同的字元,將非首次出現的字元過濾掉。要求實現函式 void stringfilter const char pinputstr,long linputlen,char poutputstr...
每日一題 12 字串壓縮
題目描述 對字串進行rle壓縮,將相鄰的相同字元,用計數值和字元值來代替。例如 aaabccccccddeee,則可用3a1b6c2d3e來代替。輸入描述 輸入為a z,a z的字串,且字串不為空,如aaabccccccddeee 輸出描述 壓縮後的字串,如3a1b6c2d3e 思路 建立乙個變數,...
每日一題 38字串相乘
給定兩個以字串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示為字串形式。示例 1 輸入 num1 2 num2 3 輸出 6 示例 2 輸入 num1 123 num2 456 輸出 56088 說明 class solution string a...