没参加昨晚的面试,但还是做了一下这道题,自己测是没什么问题,分享一下自己的思路,看看哪里还有不足的。 主要思想是贪心。将输入输出分成2种,一种是含0的,一种是不含0的。 1.不含0的:遍历每一位数,大于9的就直接替换成3,小于等于3的就不变。 2.含0的:首先找到第一个0出现的下标pos,然后从后往前遍历i,i>=1,,遇到的是0的话,就加个while循环,往前寻找第一个非0的(比如100,从第二个0,从右往左找到第一个非0的1),并将遇到的0都置换为3,然后第一个非0数减1(也就是1-1==0,变成了一个前导0),.如果i位置上的不是0,且i大于第一个0出现的位置pos,小于pos的不变,也置换成3。经过这样操作,就变成了不含0,或者只含一个前导0的数了,前导0可以直接去掉,不含0的话就按1中不含0的方式再处理一次。
点赞 评论

相关推荐

2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
02-15 22:29
门头沟学院 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务