题解 | #删除字符串中出现次数最少的字符#
删除字符串中出现次数最少的字符
http://www.nowcoder.com/practice/05182d328eb848dda7fdd5e029a56da9
这道题标的简单类型,但是我一开始真的没思路,想用双指针但是一直没有捋清楚。最后仔细跟着题目的思路过了一遍发现不如老老实实遍历做吧,然后一开始想着怎么判断的同时删去这个元素,稍微走了下弯路。随后发应过来应该定义一个映射保存字母出现的次数,然后对次数排序找最小次数。最后遍历字符串,当字母的出现次数等于最小次数时候删除它。这里开始我先是因为保存次数的容器长度没有定义一直报错,我误以为是排序函数的问题就改用遍历比较找最小值。改完后到了输出步骤,我有点钻牛角尖想着删除就用erase()函数,结果由于删除后次数和字母不对应报错,意识到这个问题我还是想着怎么设置一个矫正参数让次数和字母对应,结果试了几次结果都出错。最后看了两遍代码豁然开朗,想到题目说的删除并不一定要在程序中删除,只需要不输出就可以了。随即改变输出语句,判断当当前字符的次数大于最小次数时将其输出。终于搞定!但是代码有点长,后面有时间要想想怎么改进。