美团318笔试第三题回文串

想问问大家我这个思路有问题吗?
首先遍历一遍字符串,记录下不匹配的位置有几对(如果字符串为奇数长度,也记录下中间落单的那个位置),根据题目要求,这个数量应该为0,1,2。然后分情况讨论。
如果不匹配位置为2对,那么这两对都把较大的改成较小的即可。
如果不匹配位置为1时,有两种情况,第一种是其中有一个为a,另一个不是,此时将另一个不为a的改为a,且如果字符串长度为奇数,那么将中间落单的改为a。第二种是两个都不为a,那么将这两个都改为a即可。
如果不匹配位置为0,说明本身就是回文串。此时再次遍历,找到第一对不为a的位置,将他们都改为a即可。如果每一对都为a,且还剩余修改次数,那么只能改中间落单的为a。
全部评论
我觉得思路没什么问题,但是只过了27%。
点赞 回复 分享
发布于 2023-03-18 13:50 北京
我也是这么做的
点赞 回复 分享
发布于 2023-03-18 13:48 广东

相关推荐

大摆哥:刚好要做个聊天软件,直接让你帮他干活了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务