文章目录
零、原题链接
一、题目描述

二、测试用例

三、解题思路
- 基本思路:
建立字符串的散列表,然后统计不同字符个数 - 具体思路:
遍历字符串的字符,如果散列表中存在该字符,则跳过,否则,则存入字符,并且不同字符数+1
。
四、参考代码
时间复杂度: O ( n ) \Omicron(n) O(n)【字符散列的复杂度】
空间复杂度: O ( 1 ) \Omicron(1) O(1)【散列表的空间为常数级】
cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<bool> _map(128);
string str;
cin >> str;
int count = 0;
for (const auto& x : str) {
if (_map[x])
continue;
_map[x] = true;
count++;
}
cout << count;
}
// 64 位输出请用 printf("%lld")