题目链接
分析
根据题意,只要有相同的字符就可以删除,计算 $s$ 中不同字符的个数即可
使用集合去重运算即可,实际实现中可使用位运算优化
代码实现
class Solution {
public:
int minimizedStringLength(string s) {
bitset<32> mask = 0;
for(char c : s) {
mask |= 1 << (c - 'a');
}
return mask.count();
}
};
复杂度分析
- 时间复杂度:$O(n)$
- 空间复杂度:$O(1)$