12345這五個數,列印出它所有的組合。4不能在中間,3和5不能挨著(實現二)
public class TestNumber {
/**
*
* @param args
*/
public static List list = new ArrayList();
public static void main(String[] args) {
group("", "12345");
System.out.println(list.size());
}
public static void group(String str, String nstr) {
if (str.length() != nstr.length()) {
String rest = getRest(str, nstr);
for (int i = 0; i < rest.length(); i++) {
String temp = str + rest.substring(i, i + 1);
if (temp.indexOf("4") != 2 && temp.indexOf("35") == -1
&& temp.indexOf("53") == -1) {// 過濾顯示條件,如果去掉此處的判斷,就是列出所有字符集的排列組合
if (temp.length() > 4) {
System.out.println(temp);
if (!list.contains(temp)) {
list.add(temp);
}
}
group(temp, nstr);
}
}
}
}
public static String getRest(String str, String nstr) {
String rest = "";
if (nstr.length() > str.length()) {
rest = nstr;
for (int i = 0; i < str.length(); i++) {
rest = rest.replaceFirst(str.substring(i, i + 1), "");// 注意此處的replaceFirst,而不是replaceAll
}
}
return rest;
}
}
/**
*
* @param args
*/
public static List list = new ArrayList();
public static void main(String[] args) {
group("", "12345");
System.out.println(list.size());
}
public static void group(String str, String nstr) {
if (str.length() != nstr.length()) {
String rest = getRest(str, nstr);
for (int i = 0; i < rest.length(); i++) {
String temp = str + rest.substring(i, i + 1);
if (temp.indexOf("4") != 2 && temp.indexOf("35") == -1
&& temp.indexOf("53") == -1) {// 過濾顯示條件,如果去掉此處的判斷,就是列出所有字符集的排列組合
if (temp.length() > 4) {
System.out.println(temp);
if (!list.contains(temp)) {
list.add(temp);
}
}
group(temp, nstr);
}
}
}
}
public static String getRest(String str, String nstr) {
String rest = "";
if (nstr.length() > str.length()) {
rest = nstr;
for (int i = 0; i < str.length(); i++) {
rest = rest.replaceFirst(str.substring(i, i + 1), "");// 注意此處的replaceFirst,而不是replaceAll
}
}
return rest;
}
}
相關文章
- 12345這五個數,列印出它所有的組合。4不能在中間,3和5不能挨著
- 求陣列中k個數的所有組合陣列
- HDU-1792-( 兩個互質的數線性組合最大不能表示的數和不能表示數的個數)
- c語言中實現4行3列矩陣和3行4列矩陣的運算C語言矩陣
- 設計一個程式,列印出1-200之間的斐波那契數列
- Redux實現組合計數器Redux
- <組合語言> 5. [BX] 和 loop | 實驗 4 : [BX] 和 loop 的使用組合語言OOP
- HDU 1792 - A New Change Problem(規律,最大不能組合數及其個數)
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- 這就是現代php該有的樣子(二)PHP
- 不學無數——組合模式模式
- 組合數字首和
- 輸出一個百位數,1-5之間所有組合型別,數字不重複型別
- 有的服務不能在nvidia-docker中正常呼叫顯示卡問題排查Docker
- 組合數學筆記-特殊計數數列筆記
- C#二維陣列在SLG中的實現和使用C#陣列
- 【力扣】組合總和3(組合的去重)力扣
- C#中如何獲取二維陣列的行數和列數?C#陣列
- 4. 兩個排序陣列的中位數排序陣列
- SQL 居然還能在 Apache ShardingSphere 上實現這些功能?SQLApache
- [048][組合語言]實驗10 3、數值顯示組合語言
- 輸出1-100之間的不能被5整除的數,每5個一行
- 【Leetcode】18. 4Sum 給定陣列中的4個元素之和等於給定值的所有組合LeetCode陣列
- 低程式碼平臺想要實現複雜的業務流程,這4個條件不能少!
- 12345
- 陣列中每個陣列元素出現的次數陣列
- LeetCode 4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode-4. 兩個排序陣列的中位數LeetCode排序陣列
- OI中組合數學公式和定理90%殲滅公式
- PostgreSQL任意列組合條件行數估算實踐-取樣估算SQL
- 【數學】組合數學 - 排列組合
- 從一個無序,不相等的陣列中,選取N個數,使其和為M實現演算法(javascript實現)陣列演算法JavaScript
- 每日一題(一):找出兩個陣列中共有的數字每日一題陣列
- 企業才能在這個競爭激烈的社會中立於不敗之地。
- 列印出ckpt裡的所有變數和值變數
- 注意別聽人忽悠!其實這4類人並不適合IT行業行業
- Android中RecyclerView與Scrollview組合使用(二)AndroidView
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列