用java写一个main函数,打印出1-6这这六个数字的所有不同的排列

1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"与"5"不能相连.

package com.test;

import java.util.ArrayList;
import java.util.List;

/**
 * 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"与"5"不能相连.
 *
 * @author SIMONE wangxinsh55@126.com 2009-6-12
 */
public class GroupTest {
    public static List<String> list = new ArrayList<String>();
     /**
     * 构造字符串的所有排序组合
     *
     * @param str 将要组合成的字符
     * @param nstr 源字符串集
     */
    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) {// 过滤显示条件,如果去掉此处的判断,就是列出所有字符集的排列组合
                    System.out.println(temp);
                    if (!list.contains(temp)) {
                        list.add(temp);
                    }
                    group(temp, nstr);
                }
            }
        }
    }
     /**
     * 从源字符串集中去除将要组合成的字符
     *
     * @param str 将要组合成的字符
     * @param nstr 源字符串集
     * @return 剩余字符串集
     */
    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;
    }

    public static void main(String[] args) {
        group("", "122345");
        System.out.println(list.toString());
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索rest
, string
, 字符串
, str
, length
, temp
, java 排列组合
, replaceFirst
, 数字打印
, java中length函数
, java中的main函数
组合成字符串
数字排列组合生成器、数字排列组合软件、四个数字排列组合、数字排列、4个数字排列组合,以便于您获取更多的相关知识。

时间: 2024-08-08 06:01:11

用java写一个main函数,打印出1-6这这六个数字的所有不同的排列的相关文章

java类的问题-用java 写一个方法,能够判断任意整数是否是素数

问题描述 用java 写一个方法,能够判断任意整数是否是素数 用java代码写一个方法,能够判断任意整数是否是素数......... 解决方案 public class Num{ public static void main(String args[]){ int m; boolean tag=true; System.out.print("Please enter a num:"); try{ m=(int)System.in.read(); for(int i=m-1;i>

Java写一个加密文件或者文件夹的软件

问题描述 Java写一个加密文件或者文件夹的软件 求大神指导思路,Java或者C#开发都可以,如何做到选择一个文件或者文件夹加密之后 ,再点击文件或者文件夹,会指向到软件,只有输入密码之后这种指向才会消失. 求大神教!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 这个用Java和C#来做估计不太合适,我只能给你提供思路,思路一,HookAPI的CreateProcess和ShellExecute这类打开文件的API函数,然后获得 打开的文件路径,然后判定这个文件是否在你的加密数据库中

为什么一个c程序只能有一个main函数

问题描述 为什么一个c程序只能有一个main函数 为什么一个c程序只能有一个main函数?如果一个程序有多个功能,那么不能有多个main函数么? 解决方案 不是说一个程序只能有一个main函数,而是说一个程序中,每个函数必须有自己的名字(C++有函数重载,同名,同参数的函数也只能有一个). 否则你调用函数的时候,编译器怎么知道你调用的是哪一个. 至于程序有很多功能,这个只要一个main函数,在里面通过程序启动参数或者菜单等区分就可以了. 解决方案二: 这是规定,程序只有一个入口函数main().

用Java写一个地图编辑器

用Java写一个地图编辑器 记得媒体在采访C++之父的时候,他说作为程序员,要相信自己能够解决已经理解的任何事情.换句话说:您可以解决任何问题,只要想得明白 现实问题:开发一个基于地砖的二维游戏的地图编辑器,要求生成两个binary文件,各包含一个二维数组,*.map存放地砖,花花草草什么的.*.item放道具,比如某个点可能会触发一个事件.很简单,随便写.看到这里您已经大致明白程序的整体结构.计算机语言:java. 要理解事件必须分析 初步来看,地图编辑器:生成某种形式的若干数组,无论是哪种形

spring-想用java写一个博客系统

问题描述 想用java写一个博客系统 想用java写一个自己的博客程序,现在问题来了,由于不想 用jsp+servlet感觉太乱,就苦苦在网上找该用什么框架,什么方案,能保证安全,能保证速度,这里问过一些朋友意见不一,下面是自己定出来的一些框架搭配 1.struts+spring+hibernate(感觉有hibernate的地方速度不怎么样) 2.springmvc+jdbctemplate 3.直接springmvc 4.springmvc+mybatis 这里想请教各位高手该如何选呢,或者

哎哎哎!急-请求大神帮忙用JAVA写一个基于UDP的语音聊天系统

问题描述 请求大神帮忙用JAVA写一个基于UDP的语音聊天系统 有报酬!!?谢谢!!急急 解决方案 有报酬,两个馒头.呵呵...... UDP 实际简单,但语音部分还是有一些工作量的.

java源码-java写一个斗地主的最简单功能

问题描述 java写一个斗地主的最简单功能 斗地主定义一副扑克牌,按照斗地主的规则,为三家随机发17张牌,并且留3张底牌.同时指定一个地主.很好玩的,求源码就这一个简单功能就行了 解决方案 http://www.cnblogs.com/jiahuafu/p/4936111.html 解决方案二: 容器放牌,每次随机抽出不重复的牌存到三个小容器,最后剩三张,在用随机数指定地主

如何写一个主函数去调用这个函数,求指导

问题描述 如何写一个主函数去调用这个函数,求指导 bool imageSubtract(IplImage* src IplImage* dst){ int row = 0;//行 int col = 0;//列 uchar* pSrcData = NULL; uchar* pDstData = NULL; int stepSrc = 0; int stepDst = 0; if (!src || !dst){ return 0;}if ((src->height != dst->height)

VB怎么自己写一个MSGBOX函数,定时关闭自己,并且可以选择一个默认的命令?

问题描述 VB怎么自己写一个MSGBOX函数,定时关闭自己,并且可以选择一个默认的命令? VB怎么自己写一个MSGBOX函数,定时关闭自己,并且可以选择一个默认的命令? 解决方案 方法一: 自己建一个窗体,通过showmodal方式模拟弹出窗口,这个是最简单的. 方法二: moduls.pas Option Explicit Private Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVa