sdfdsfs3424f 2010-07-19 10:19
浏览 309
已采纳

◆◆关于算法(急)◆◆

曾经面试遇到的问题:
1. 色子(6个面),N个色子,把所有组合输出来,去掉重复的(如:3个色子: 1,2,3的组合 和 3,2,1的组合 或者 2,3,1 的组合 都示为重复的 )
2. 画TABLE,所有单元格相临的颜色都不能有重复的.

这2个问题说明:

当时去了一家公司面试,环境挺好,也挺不错.
面试很简单.也很到位.

就给了我3个题. 并且只要做出其中2个题就可以.时间是5小时. 我看了下题.选的是其中的2个. 还有一个忘记了.

------重点希望有朋友可以解答第1题. 因为我只做了第1题. 5小时.还没做出来.-------

小弟是新人.第一次发帖.希望大家指点.

  • 写回答

13条回答

  • iteye_15772 2010-07-19 17:44
    关注

    来个完全正确的。

    public class DiceArith {

    /**
     * 数组转字符
     * 
     * @return
     */
    public static String arraysToString(String[] s) {
        String t = "";
        for (int i = 0; i < s.length; i++)
            t += s[i];
        return t;
    }
    
    /**
     * 方法一
     * 
     * @param N
     */
    public static void method1(int N) {
        TreeSet<String> tree = new TreeSet<String>();
        long start = 1, end = 6;
        for (int i = 1; i < N; i++) {
            start += 1 * convert(10, i);
            end += 6 * convert(10, i);
        }
        String[] data;
        for (long j = start; j <= end; j++) {
            if (expValid(j + "")) {
                data = String.valueOf(j).split("");
                Arrays.sort(data);
                tree.add(arraysToString(data));
            }
        }
    
        for (Iterator<String> t = tree.iterator(); t.hasNext();) {
            String d = t.next();
            System.out.println(d);
        }
    }
    
    public static void main(String[] args) {
        method1(3);
    }
    
    /**
     * 计算平方根
     * 
     * @param data
     * @param n
     * @return
     */
    public static long convert(int data, int n) {
        long result = 1l;
        for (int i = 1; i <= n; i++)
            result *= data;
        return result;
    }
    
    /**
     * 正则验证色子数在【1-6】范围内
     * 
     * @param s
     * @return
     */
    public static boolean expValid(String s) {
        Pattern p4 = Pattern.compile("^[1-6]+$");
        Matcher m4 = p4.matcher(s + "");
        if (m4.find())
            return true;
        else
            return false;
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题