用Python解答百度测试开发算法面试题
吾八哥本人之前有幸能接到百度北京总部的人工智能测试开发岗位的面试机会,在二面的过程中,面试官出了一道算法题,题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法。
很明显这是一道排序算法题,基本上随便哪种算法都能实现,但这显然不是面试官要的答案,但是何种算法最合适呢?当时紧张的气氛下,开始是想到从头循环到尾部,遇到“-”就移动到尾部,将尾部的数据跟首位的数据交换。不过面试官提醒了下说如果起始和结束都是“-”呢?一想吧,确实是的,那就死循环了,后来再仔细想了下,这个得头部和尾部一起移位才行,一直到整组字符串检查完成即可。虽然勉强算是完成了该算法,但在终面的时候还是没过,唉!都是泪啊,不过这也抵挡不了我继续学习的决心呀!不过当时面试的这会吾八哥我还没怎么接触Python,现在既然开始玩Python了,就拿Python来实现下这个排序算法,代码如下:
#解百度面试题
def StringSort(data):
startindex = 0
endindex = 0
count = len(data)
while startindex + endindex < count:
if data[startindex] == '-':
data[startindex], data[count - endindex - 1] = data[count - endindex - 1], data[startindex]
endindex += 1
else:
startindex += 1
return data data = ['-', '-', '+', '+', '+','-', '+','-', '+','-','-']
print(StringSort(data))
执行结果:[‘+’, ‘+’, ‘+’, ‘+’, ‘+’, ‘-‘, ‘-‘, ‘-‘, ‘-‘, ‘-‘, ‘-‘]
吾八哥Python交流群643829693欢迎各路热爱Python的朋友加入!
用Python解答百度测试开发算法面试题的更多相关文章
- 华为Python 算法面试题
华为算法面试题 """ 算法题: 提供一个序列,完成对这个序列的分割.要求分割后的两个序列彼此差值最小 实现函数,返回两个序列 """ de ...
- Twitter算法面试题详解(Java实现)
最近在网上看到一道Twitter的算法面试题,网上已经有人给出了答案,不过可能有些人没太看明白(我也未验证是否正确),现在给出一个比较好理解的答案.先看一下题目. 图1 先看看图图1.可以将方块看做砖 ...
- 【BAT经典算法面试题系列】求和为n的连续正整数
马上就要到9月份了,意味着一年一度的秋招就要开始了,相信不论是正在实习的童鞋还是马上就要找工作的童鞋,BAT无疑是国内的"明星企业",是每个学计算机的小伙伴们心之向往的企业,但是呢 ...
- 【转】Twitter算法面试题详解(Java实现)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://androidguy.blog.51cto.com/974126/1319659 ...
- 算法实践——Twitter算法面试题(积水问题)的线性时间解法
问题描述:在下图里我们有不同高度的挡板.这个图片由一个整数数组所代表,数组中每个数是墙的高度.下图可以表示为数组(2.5.1.2.3.4.7.2).假如开始下雨了,那么挡板之间的水坑能够装多少水(水足 ...
- 常见的js算法面试题收集,es6实现
1.js 统计一个字符串出现频率最高的字母/数字 let str = 'asdfghjklaqwertyuiopiaia'; const strChar = str => { let strin ...
- 算法面试题:一个List<Student>,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点!
算法面试题:一个List,要求删除里面的男生,不用Linq和Lamda,求各种解,并说明优缺点! 解题思路 这是群里某位小伙伴去面试碰到的面试题,从题目本身来看,面试官应该是要考察面试者对泛型 Lis ...
- LeetCode 算法面试题汇总
LeetCode 算法面试题汇总 算法面试题 https://leetcode-cn.com/problemset/algorithms/ https://leetcode-cn.com/proble ...
- Java算法面试题(史上最强、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
随机推荐
- 个人作业3-(Alpha阶段)
一. 总结自己的alpha 过程 1.团队的整体情况 Alpha阶段初期我们团队因分工以及项目具体实施一度茫然,好在在团队队长的带领下确认分工及制定具体计划,使任务有序的进行下去,中间过程虽然遇到一些 ...
- 201521123055 《Java程序设计》第11周学习总结
1. 本章学习总结 2. 书面作业 Q1.互斥访问与同步访问 ** 完成题集4-4(互斥访问)与4-5(同步访问) ** 1.1 除了使用synchronized修饰方法实现互斥同步访问,还有什么办法 ...
- 201521123026《JAVA程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- linux下修改rm命令防止误删除
前言:相信很多朋友都遇到过在linux下用rm命令误删除文件的时候,此刻的心中仿佛有无数的羊驼在奔腾.那么怎么防止这种情况发生呢?当然是有方法的,我们可以写一个shell脚本,改变一下rm命令的作用. ...
- Lucene第一篇【介绍Lucene、快速入门】
什么是Lucene?? Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个全文检索引擎的架构,提供了完整的创建索引 ...
- 关于使用lombok遇到的问题
在官网上下载了lombok.jar包以后,有两种安装方式 : 1. 双击下载下来的 JAR 包安装 lombok 我选择这种方式安装的时候提示没有发现任何 IDE,所以我没安装成功,我是手动安装 ...
- Bootstrap中的strong和em强调标签
在Bootstrap中除了使用标签<strong>.<em>等说明正文某些字词.句子的重要性,Bootstrap还定义了一套类名,这里称其为强调类名(类似前面说的“.lead” ...
- xml跟sql查找
xml小白笔记 ....... <sql id="wDishesColumns"> a.id AS "id", a.pid AS "pid ...
- 复选框demo
本篇文章是关于复选框的,有2种形式:1.全选.反选由2个按钮实现:2.全选.反选由一个按钮实现. <!DOCTYPE html> <html> <head> < ...
- 【OOM】GC overhead limit exceeded
我遇到这样的问题,本地部署时抛出异常java.lang.OutOfMemoryError:GC overhead limit exceeded导致服务起不来,查看日志发现加载了太多资源到内存,本地的性 ...