设为首页收藏本站language 语言切换
查看: 2250|回复: 8
收起左侧

[已解决] 公司面试遇到java问题,求解

[复制链接]
发表于 2013-5-13 15:53:06 | 显示全部楼层 |阅读模式
/**
* Java经典算法集——如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,
* 如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
*/
package com.test1;

import java.util.Set;
import java.util.TreeSet;

public class NumberSort {

    public static Set<String> set = new TreeSet<String>();

    public static void perm(char[] n, int beg, int end) {
        if (beg == end) {
            addNumber(String.valueOf(n));
        } else {
            for (int i = beg; i <= end; ++i) {
                swap(n, beg, i);
                perm(n, beg + 1, end);
                swap(n, beg, i);
            }
        }
    }

    public static void swap(char[] n, int x, int y) {
        if (x == y || n[x] == n[y]) {
            return;
        }
        char temp = n[x];
        n[x] = n[y];
        n[y] = temp;
    }

    public static void addNumber(String str) {
        if (str.charAt(2) == '4' || str.contains("35") || str.contains("53")) {
            return;
        }
        set.add(str);
    }

    public static void main(String args[]) {
        char[] number = new char[] { '1', '2', '2', '3', '4', '5' };
        perm(number, 0, number.length - 1);
        System.out.println("共有:"+set.size());
        int cols = 10;
        System.out.println("分别是");
        for (String s : set) {
            System.out.print(s + " ");
            if (cols-- == 1) {
                System.out.println();
                cols = 10;
            }
        }
    }
}
//小弟实在看不懂perm方法和swap方法是干什么用的,请高手重点注释这两个方法,小弟感激不尽

发表于 2013-5-13 20:18:58 | 显示全部楼层

回帖奖励 +1 个鸿鹄币

沙发 2013-5-13 20:18:58 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-14 08:42:49 | 显示全部楼层
板凳 2013-5-14 08:42:49 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-14 16:21:35 | 显示全部楼层
地板 2013-5-14 16:21:35 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-14 16:48:59 | 显示全部楼层
JAVA 怎么跑到这里来求助了
5# 2013-5-14 16:48:59 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-14 22:30:50 | 显示全部楼层
6# 2013-5-14 22:30:50 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-15 07:11:54 | 显示全部楼层
7# 2013-5-15 07:11:54 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-17 12:26:53 | 显示全部楼层
哥顶的不是帖子,是寂寞!
8# 2013-5-17 12:26:53 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-5-17 23:24:38 | 显示全部楼层
9# 2013-5-17 23:24:38 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-3-10 15:47 , Processed in 0.085796 second(s), 26 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表