SOLUTION INFO
C++ · main.cpp
class Solution {
public:
int numTilePossibilities(string tiles) {
vector<int> cnt(26);
for(char ch: tiles) ++ cnt[ch - 'A'];
int ans = 0;
vector<int> used(26);
function<void(int)> dfs = [&](int dep) -> void {
if(dep > 0) ++ ans;
if(dep == tiles.size()) return;
for(int i = 0; i < 26; ++i) {
if(cnt[i] == 0) continue;
-- cnt[i];
dfs(dep + 1);
++ cnt[i];
}
};
dfs(0);
return ans;
}
};
SOLUTION DESCRIPTION
풀이 설명
등록된 풀이 설명이 없습니다.