description
假設乙個字串只由字元『0』,『1』,『?』組成,其中字元『?』表示該字元可由字元『0』或『1』替代。
現有一些字串,根據這些字串生成所有可生成的字串。
如:可生成
可生成注意後乙個例子中『?01』並沒有生成新的字串。
input
輸入包含多組測試資料。
每組資料的第一行是兩個整數m,n(1≤m≤15,0≤n≤2500)。m表示字串的長度,n表示字串的個數。兩個整數之間由乙個空格隔開。以下n行每行各有乙個字串。檔案中各行的行首、行末沒有多餘的空格。
當m=n=0時表示輸入結束。
解題思路:主要的思路是對於輸入的字串,將其當做數字看待,對於'?'則分別用0和1代替。這裡使用的是回溯演算法求解。用乙個一維陣列,對於已經存在的數進行標記。
#include #include using namespace std;
char instr[18];
bool is_existed[1<<16];
int m, n;
int total;
void backtrack(int presum, int k)
}else if(instr[k] == '?')
else
}int main()
cout << total << endl;
}return 0;
}
生成字串
從空串出發,每次在字串中間插入乙個或多個相同的字母,插入的字母可以在頭部和尾部。求出最少的次數。動態規劃,逆向進行,考慮首尾。include include include include include include include includeusing namespace std cons...
生成隨機字串
原文出處 估摸著以後極有可能使用到,於是寫了乙個生成隨機字串的函式。可以自定義生成規則,生成字串長度。模仿了ms的函式風格,生成規則使用巨集的或且規則,返回值使用了布林型。這裡使用布林返回可能作用不大。直接貼 吧,同樣是兩個檔案。randomstring.h pragma once define r...
生成JSON字串
假設現在要建立這樣乙個json文字 物件 married false 布林值 try 是建立乙個物件 jsonobject person new jsonobject 第乙個鍵phone的值是陣列,所以需要建立陣列物件 jsonarray phone new jsonarray phone.put ...