美文网首页
三道月薪20k的算法题,答案到底有多简单

三道月薪20k的算法题,答案到底有多简单

作者: 码同学软件测试 | 来源:发表于2022-03-08 09:31 被阅读0次

    每天进步一点点,关注我们哦,每天分享测试技术文章

    本文章出自【码同学软件测试】

    最近很多小伙伴私信小编说想要我们多分享一些算法题,那么今天给大家分享几道算法题,用python代码给大家进行实现,大家在读文章的时候,建议大家先看题,然后思考思路,最后尝试用python代码进行实现,那么话不多说,直接上代码了。

    码同学公众号:自动化软件测试

    码同学抖音号:小码哥聊软件测试


    01   算法题一

    面试题:假设有一个字符串,每个英文单词全部都是以首字母大写,之后有小写字母,现需要逐个反转每个单词。

    举例

    输入:"MyNameIsTom"

    输出:"yMemaNsImoT"

    解题思路:

    1.单词切割:根据每个单词的首字母单词大写,最后的单词小写这个特性进行切割

    2.然后把单个的单词进行反转

    如下是解决方法

    第一种解决方法:

    根据首字母是大写的特点对单词进行切割,然后放到列表中保存,对列表进行循环遍历,把单个单词拿出来,然后进行反转,之后用join方法把列表转换成字符串。

    免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

    第二种解决方法:

    利用正则表达式把单独的单词进行切割,然后放到一个列表中,对列表进行循环遍历,把单个单词拿出来,然后进行反转,之后用join方法把列表转换成字符串。

    02   算法题二

    三个一组进行反转,最后剩1个,不反转,剩2个,互换

    举例子:

    [1,2,3,4] -> [3,2,1,4]

    [1,2,3,4,5] -> [3,2,1,5,4]

    [1,2,3,4,5,6] -> [3,2,1,6,5,4]

    解题思路:

    1.3个一组,就可以用到步长进行切割,返回值是一个列表 2,反转就用列表的reverse方法

    代码如下:


    03   算法题三

    100个人围一圈编号1-100,依次开始报数,

    从1开始,报到3的退出,然后继续从1开始,报到3退出,直到最后只有2个人,得到编号 58, 91

    从1开始,报到4的退出,然后继续从1开始,报到4退出,直到最后只有3个人,得到编号 34, 45, 97

    实现效果:

    输入:3

    输出:58,91

    输入:4

    输出:34, 45, 97

    解题思路: 

    先把1-100编号,如果长度大于3就可以正常报数,用切片的方式把报数的数据从列表中删除,然后再重新组合,进行重新的报数,之后再把报数的数据从列表中删除,然后在重新组合,依次重复,直到a的长度小于3停止,退出循环,然后对列表进行排序,把最终的结果返回出来。

    代码如下:

    那上面的三道题就是今天给大家分享的比较典型的算法题了,大家赶紧收藏,有时间的时候钻研一下,都是比较典型的题哟,那祝大家都可以高薪就业,找到如意的工作,加油。

    END

    免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试

    本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:三道月薪20k的算法题,答案到底有多简单

          本文链接:https://www.haomeiwen.com/subject/ijxarrtx.html