Letter Tile Possibilities

Using set

Use each character, mark as used and push to result until each character has been marked as used.

set<string> res;
map<int, bool> used;
string output = "";

void getWays(const string &tiles) {
    for(int i = 0; i < tiles.size(); i++) 
        if(!used[i]) {
            output += tiles[i];
            used[i] = true;
            res.insert(output);
            getWays(tiles);
            output.pop_back();    
            used[i] = false;
        }
}


int numTilePossibilities(string tiles) {
    getWays(tiles);
    return res.size();
}

Time Complexity: O(nlogโกn)O(n\log n)โ€‹

Space Complexity: O(n)O(n)โ€‹

Last updated