【字符串】删除小写字母字符串中重复字符
来源:互联网 发布:软件评测师真题 编辑:程序博客网 时间:2024/06/01 08:13
问题描述
删除小写字母字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。 比如,输入:bbcacdww;输出:bacdw
提示:暴力求解效率太低,考虑哈希思想。
问题分析
就是将原来字符串中的相同的删除一个,这个考虑是否需要额外的存储空间,
实现1、空间复杂度为O(1)
void RemoveSame(string& s){ int temp = s[0]; for (size_t i = 1; i < s.size(); ++i) { if (s[i] == temp) s.erase(i, i + 1); else temp = s[i]; }}
实现2、辅助空间不限制
考虑到哈希或者,另外一个相同的存储空间,
遍历原数组,将拷贝到新的存储空间,遇到相同的不拷贝。
void RemoveSame2(string& s){ string temp(s,0,1); for (size_t i = 1; i < s.size(); ++i) { if (temp[temp.size()-1] != s[i]) temp += s[i]; } s = temp;}
哈希表的方法
void RemoveSame3(string& s){ char count[256] = { 0 }; for (size_t i = 0; i < s.size(); ++i) { count[s[i]]++; } int k = 0; for (size_t j = 0; j < 256; ++j) { if (count[j] != 0) s[k++] = j; } s[k] = 0;}
阅读全文
0 0
- 删除小写字母字符串中重复字符
- 删除小写字母字符串中重复字符
- 删除小写字母字符串中重复字符。
- 删除小写字母字符串中重复字符
- 【字符串】删除小写字母字符串中重复字符
- 【数据结构】中删除小写字母字符串中重复字符
- 删除小写字母字符串中重复字符。如果可以,优先删除重复字符中排在比他小字符前面的字符。
- 实现循环右移和删除小写字母字符串中重复字符——题集(二十)
- 删除字符串中重复字符
- 删除字符串中重复字符
- 删除字符串中重复字符
- 删除字符串中重复字符
- 删除字符串中重复字符
- 删除字符串中重复字符。
- C# 删除字符串中除字母和数字之外的其它字符,C#将字符串中的大写转小写,小写转大写
- 给定一个只包含小写字母的字符串,删除重复的字母,每个字母只出现一次。在所有结果中,输出字典顺序最小的。
- 59.删除字符串中的小写字母c
- 删除字符串中重复的字符
- python 报错笔记
- linkedlist模拟队列或堆
- URAL1820
- 定时任务格式
- 智能指针
- 【字符串】删除小写字母字符串中重复字符
- IEC104 电力规约解析
- 昂贵的聘礼 POJ
- Java设计模式(二)--工厂设计模式
- Hadoop DistributedCache使用方法及原理
- shell简单了解
- 机器学习-->无监督学习-->聚类
- mysql 查询优化01
- 旋转数组的最小数字