zoukankan      html  css  js  c++  java
  • Leetcode 1079 活字印刷 回溯

      回溯解法,JAVA:

     public final int numTilePossibilities(String tiles) {
            Set<String> set = new HashSet<String>();
            search(tiles.toCharArray(), "", tiles.length(), set);
            return set.size();
        }
    
        public final void search(char[] chars, String ans, int len, Set<String> set) {
            if (len < 0) return;
            for (int i = 0; i < chars.length; i++) {
                if (chars[i] == '0') continue;
                char his = chars[i];
                chars[i] = '0';
                String next = ans + his;
                if (!set.contains(next)) set.add(next);
                search(chars, next, len - 1, set);
                chars[i] = his;
            }
        }

      JS:

    /**
     * @param {string} tiles
     * @return {number}
     */
    var numTilePossibilities = function (tiles) {
        let mySet = new Set();
        search(tiles.split(""), "", tiles.length, mySet);
        return mySet.size;
    };
    
    var search = function (arr, ans, len, mySet) {
        if (len < 0) return;
        for (let i = 0; i < arr.length; i++) {
            if (!arr[i]) continue;
            let his = arr[i];
            arr[i] = 0;
            mySet.add(ans + his);
            search(arr, ans + his, len - 1,mySet);
            arr[i] = his;
        }
    }
    当你看清人们的真相,于是你知道了,你可以忍受孤独
  • 相关阅读:
    U132973 双生独白
    Remmarguts' Date(A* 短路)
    P3908 数列之异或
    P1469 找筷子
    P1759 通天之潜水
    P2356 弹珠游戏
    P7072 直播获奖
    P7074 方格取数
    CSP2020二轮游记
    P6205 [USACO06JAN]Dollar Dayz S
  • 原文地址:https://www.cnblogs.com/niuyourou/p/14675079.html
Copyright © 2011-2022 走看看