
[每日一题] 2. 删除公共字符---编程题(模拟、字符串、哈希表)
遍历
发布日期:2021-05-12 23:13:41
浏览次数:20
分类:精选文章
本文共 607 字,大约阅读时间需要 2 分钟。
当处理需要从一个字符串中删除另一个字符串所有字符的任务时,我们可以使用哈希表来提高效率。
首先,读取输入
我们需要读取两个字符串,记为 str1
和 str2
。
string str1, str2;getline(cin, str1);getline(cin, str2);
接下来,统计字符频率
使用一个大小为256的数组 hashtable
来记录 str2
中每个字符的出现次数。
int hashtable[256] = {0};for (size_t i = 0; i < str2.size(); ++i) { hashtable[str2[i]]++;}
遍历 str1
拼接结果
然后,遍历 str1
,对于每个字符,检查它在 hashtable
中的值。如果值为0,说明这个字符不在 str2
中,添加到结果字符串 ret
中。
string ret;for (size_t i = 0; i < str1.size(); ++i) { if (hashtable[str1[i]] == 0) { ret += str1[i]; }}
输出结果
最后,将结果字符串输出。
cout << ret << endl;return 0;
总结
这种方法利用哈希表将查找和统计操作结合在一起,时间复杂度为 O(n),空间复杂度为 O(1),非常高效,适合处理大规模的输入。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月10日 13时36分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MapReduce Java API-使用Partitioner实现输出到多个文件
2025-04-11
MapReduce Java API-多输入路径方式
2025-04-11
MapReduce与HDFS企业级优化
2025-04-11
MapReduce实现二度好友关系
2025-04-11
MapReduce的模式、算法和用例
2025-04-11
MapReduce的编程思想(1)
2025-04-12
MapReduce程序依赖的jar包
2025-04-12
MapReduce程序(一)——wordCount
2025-04-12
MapReduce:大数据处理的范式
2025-04-12
MapStruct 对象间属性复制
2025-04-12
MapStruct 映射过程中忽略某个字段
2025-04-12
MapStruct 超神进阶用法,让你的代码效率提升十倍!
2025-04-12
MapXtreme 2005 学习心得 一些基础函数代码(四)
2025-04-12
Map中key和value值是否可以为null或空字符串?
2025-04-12
map函数
2025-04-12
map反转key value
2025-04-12
map和bean的相互转换
2025-04-12
map和filter使用方法与区别
2025-04-12
Map如何获取所有value的值
2025-04-12
Map存入的数据丢失类型任意
2025-04-12