知识储备:02数组与字符串:判断元素出现与否及次数
来源:互联网 发布:手机淘宝撤销投诉 编辑:程序博客网 时间:2024/06/04 01:25
bitset
判断元素出现与否
bitset<256> 256位,每个位可取0或1
unordered_map
哈希表,用来计算元素出现次数
复杂度分析:
时间:bitset与哈希表的新建(插入)操作都是O(1),字符串长度为n,则平均时间复杂度是O(n)
空间:字符集大小m,则平均空间复杂度是O(m)
#include <iostream>#include <bitset>#include <unordered_map>using namespace std;//使用bitset判断元素是否出现bool isUnique(string input){//创建存储位的位集,大小根据需要定bitset<256> hashMap;for (int i = 0; i < input.length(); i++){if (hashMap[input[i]]){return false;}hashMap[input[i]] = 1;}return true;}//使用哈希表判断元素出现次数void countHash(string input){//创建哈希表typedef unordered_map<char, int> umap;umap hashMap;//字符作为key,出现字符为valuefor (int i = 0; i < input.length(); i++){hashMap[input[i]]++;}//迭代器依次显示元素次数for (umap::iterator iter = hashMap.begin(); iter != hashMap.end(); iter++){cout << iter->first << "出现" << iter->second << "次" << endl;}}int main(){string input;//输入字符串cout << "请输入字符串:" << endl;cin >> input;//判断元素是否唯一bool res = isUnique(input);cout << "判断结果(1唯一,0不唯一):" << res << endl;//不唯一则计算元素出现次数if (!res)countHash(input);return 0;}
阅读全文
0 0
- 知识储备:02数组与字符串:判断元素出现与否及次数
- 知识储备:02数组与字符串:String相关问题
- C# 判断数组元素出现的次数
- 知识储备:02数组与字符串:利用哈希表实现动态规划
- 数组元素出现次数
- 判断元素在数组中出现的次数
- 判断数组中出现次数最多的元素
- java中判断数组中元素出现的次数
- Swift按照数组元素出现的次数及大小排序
- 数组元素出现次数统计
- 主元素问题(判断数组是否出现主元素,O(n)时间内找出主元素,主元素出现次数)
- JS中判断字符串中出现次数最多的字符及出现的次数
- JS中判断字符串中出现次数最多的字符及出现的次数
- 打印字符串数组中每个字符串出现的次数(字符串与次数对应)
- 判断一个数组或者一个字符串中出现次数最多的项及其次数
- 去除数组中重复项,并统计重复出现次数最多的元素及重复次数
- 判断元素出现的次数、总和
- php判断一维数组中相同元素出现的次数
- 前几天整理的Python小程序
- JS修改昵称
- 【CUGBACM15级BC第20场 A】hdu 5123 who is the best?
- ssh框架搭建出错
- Makefile :=和=区别
- 知识储备:02数组与字符串:判断元素出现与否及次数
- 用户分页多条件查询
- POJ2001 字典树
- POJ-1324:Holedox Moving(BFS+状态压缩+蛇蛇历险记)
- FCN和U-Net
- 经典试题一
- 深度优先搜索寻找割点
- python查看如何查看版本信息
- NOIP2016 天天爱跑步