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;
}
}
相關文章
- 求:1,2,5這三個數不同組合的和為100的組合的個數!Java實現。Java
- 求陣列中k個數的所有組合陣列
- Redux實現組合計數器Redux
- 不學無數——組合模式模式
- <組合語言> 5. [BX] 和 loop | 實驗 4 : [BX] 和 loop 的使用組合語言OOP
- hdu 4546 優先佇列 數列組合和第m小佇列
- HDU 1792 - A New Change Problem(規律,最大不能組合數及其個數)
- c語言中實現4行3列矩陣和3行4列矩陣的運算C語言矩陣
- 組合數字首和
- 設計一個程式,列印出1-200之間的斐波那契數列
- 組合數學筆記-特殊計數數列筆記
- 這就是現代php該有的樣子(二)PHP
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- 輸出一個百位數,1-5之間所有組合型別,數字不重複型別
- 【力扣】組合總和3(組合的去重)力扣
- 不要再寫出不能在 Python 4 中執行的程式了Python
- 有的服務不能在nvidia-docker中正常呼叫顯示卡問題排查Docker
- C#中實現列舉數C#
- 【數學】組合數學 - 排列組合
- [048][組合語言]實驗10 3、數值顯示組合語言
- OI中組合數學公式和定理90%殲滅公式
- 一個五位數字ABCDE*4=EDCBA,這五個數字不重複,請程式設計求出來.程式設計
- C#二維陣列在SLG中的實現和使用C#陣列
- 4. 兩個排序陣列的中位數排序陣列
- C#中如何獲取二維陣列的行數和列數?C#陣列
- PostgreSQL任意列組合條件行數估算實踐-取樣估算SQL
- 找出一堆整數中兩個元素和為指定值的所有組合
- 不能在simulator執行
- 低程式碼平臺想要實現複雜的業務流程,這4個條件不能少!
- 大小寫字母和數字的組合,不能使用特殊字元正規表示式字元
- 大家幫忙看看下面的需求第3和第4能實現不??
- 這個處理器的組合語言:組合語言
- 陣列中每個陣列元素出現的次數陣列
- SOA實現中的4個最差實踐
- 【Leetcode】18. 4Sum 給定陣列中的4個元素之和等於給定值的所有組合LeetCode陣列
- SQL 居然還能在 Apache ShardingSphere 上實現這些功能?SQLApache
- Android 不能在子執行緒中更新 UI 的討論和分析Android執行緒UI
- 回收站功能在 Linux 中的實現Linux