美团318笔试第三题回文串
想问问大家我这个思路有问题吗?
首先遍历一遍字符串,记录下不匹配的位置有几对(如果字符串为奇数长度,也记录下中间落单的那个位置),根据题目要求,这个数量应该为0,1,2。然后分情况讨论。
如果不匹配位置为2对,那么这两对都把较大的改成较小的即可。
如果不匹配位置为1时,有两种情况,第一种是其中有一个为a,另一个不是,此时将另一个不为a的改为a,且如果字符串长度为奇数,那么将中间落单的改为a。第二种是两个都不为a,那么将这两个都改为a即可。
如果不匹配位置为0,说明本身就是回文串。此时再次遍历,找到第一对不为a的位置,将他们都改为a即可。如果每一对都为a,且还剩余修改次数,那么只能改中间落单的为a。
首先遍历一遍字符串,记录下不匹配的位置有几对(如果字符串为奇数长度,也记录下中间落单的那个位置),根据题目要求,这个数量应该为0,1,2。然后分情况讨论。
如果不匹配位置为2对,那么这两对都把较大的改成较小的即可。
如果不匹配位置为1时,有两种情况,第一种是其中有一个为a,另一个不是,此时将另一个不为a的改为a,且如果字符串长度为奇数,那么将中间落单的改为a。第二种是两个都不为a,那么将这两个都改为a即可。
如果不匹配位置为0,说明本身就是回文串。此时再次遍历,找到第一对不为a的位置,将他们都改为a即可。如果每一对都为a,且还剩余修改次数,那么只能改中间落单的为a。
全部评论
我觉得思路没什么问题,但是只过了27%。
我也是这么做的
相关推荐
03-19 01:17
大连东软信息学院 人工智能
在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西 点赞 评论 收藏
分享
