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 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测