力扣一道令我WA八次的简单题

155 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情


回想昨晚的双周赛,依然历历在目,第一次做题做到怀疑人生,心态爆炸。

原本以为是一道平平无奇的简单题,毕竟第一道嘛,但越做越不对劲,耗时四十分钟WA八次,然后放弃T_T

删除字符使频率相同

题目链接 6212. 删除字符使频率相同

给你一个下标从 0 开始的字符串 word ,字符串只包含小写英文字母。你需要选择 一个 下标并 删除 下标处的字符,使得 word 中剩余每个字母出现 频率 相同。

如果删除一个字母后,word 中剩余所有字母的出现频率都相同,那么返回 true ,否则返回 false 。

思路分析

乍看很简单,只需要算出字符串中所有出现的字母的频率就好了。

假设有 n 个字母,只需要符合 n - 1 个字母出现频率相同,剩下一个字母的出现频率比其他字母的多一个,这样子删除一个字母就可以符合所有字母出现频率相同。

WA之路

说起来简单,写起来有点麻烦,写出来之后,提交,WA。

漏了一种情况,"aabbc",n - 1 个字母的出现频率相同,删除只出现一次的字母,也可以达到频率相同的目的,有点麻烦,但还是能写出来,提交,WA..

其中夹杂各种因为代码细节的WA,代码实现的问题,也是心态的问题,怪自己。

经过半个多小时的完善后,喜提WA,最后败给了隐藏用例,心态彻底爆炸,已经开始骂街了,遂放弃...

今天一早起来看隐藏用例到底是个啥,给我气笑了,好一个zz,昨天的自己还真像个zz

image.png

又漏了一种情况,如果只有一种字母,删除一个,也符合要求。

总结

看大佬题解发现,分情况讨论太难想到所有情况了,因为是个简单题,数据量不大,直接暴力解决是最简单,也算是给自己一个教训,各种算法都有各自的用处,存在即合理,暴力也是一种美学