【Python】:用python做下百度2014笔试题
国庆节最后一天,明天就要上班了,闲来无事做做百度2014笔试题,好久没用过C++了,索性就用python简单的写一下,体验下题目难度。题目是从【大卫David】那里copy过来的。
1、给定任意一个正整数,求比这个数大且最小的“不重复数”,“不重复数”的含义是相邻两位不相同,例如1101是重复数,而1201是不重复数。(15分)
2、长度为N(N很大)的字符串,求这个字符串里的最长回文子串。(15分)
3、数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。(15分)
流程都是A介绍思路,B贴出代码,代码写的也不是很漂亮,凑凑活活贴下
一:
A.获取输入base的位数,然后分为两种情况,情况1是在该位数下寻找所需要的最小不重复数,情况2是在比该位数+1的位数下找最小不重复数
情况2比较简单,就是1010...的罗列,一直到满足位数要求,情况1也就是从base+1开始挨个判断。。。感觉就这么简单,没有想什么高深的算法,
如果理解错了同志们轻拍。。
B.代码
#!/bin/env/python
# -*- encoding:utf- -*-
#Filename: .py import sys def Get_base_out(num, length):
'''Get_base_out method'''
for i in range(int(num)+, **length):
result = Judge(i, length)
if result == True:
return i
return - def Get_base1_out(num, length):
'''Get_base1_out method'''
no_repeated_num = str()
for i in range(,length):
if i % == :
no_repeated_num += ''
else:
no_repeated_num += ''
return no_repeated_num def Judge(suspect, length):
''' Judge method'''
temp = str(suspect)
for i in range(,length-):
if temp[i] == temp[i+]:
return False
return True if __name__ == "__main__":
for line in sys.stdin:
base = line.strip()
length = len(base)
court = Get_base_out(base, length)
if court == -:
court = Get_base1_out(base, length)
print court
二:
A.既然找东西,肯定都遍历一遍喽,那只有想办法在一遍遍历中就完成任务,计划用两个变量分别存储回文自串的位置和回文字串的长度。从头到尾遍历
判断下就完事。
B.代码:
注:没写123321这种类型的回文自串,方法一样就得再敲点代码
python有个好处,就是列表负向不会越界,HoHo~
#!/bin/env/python
# -*- encoding:utf- -*-
#Filename: .py import sys def Find_point(base, index):
'''Find point method'''
rt_point = -
if base[index-] == base[index+]:
rt_point = index
return rt_point def Get_length(base, point, length):
'''Get huiwen length'''
rt_len = -
for i in range(, (length+)/):
if point - i >= and point + i < length:
if base[point-i] == base[point+i]:
rt_len = i
else:
break
else:
break
return rt_len def Get_huiwen(init_in):
'''Get huiwen'''
base = str(init_in)
length = len(base)
huiwen_point = -
huiwen_len = -
for i in range(, length - ):
tmp_point = -
tmp_len = -
tmp_point = Find_point(base, i)
if tmp_point != -:
tmp_len = Get_length(base, tmp_point, length)
if tmp_len > huiwen_len:
huiwen_point = tmp_point
huiwen_len = tmp_len
if huiwen_point == - and huiwen_len == -:
return "None"
start = huiwen_point - huiwen_len
end = huiwen_point + huiwen_len +
return base[start:end] if __name__ == "__main__":
for line in sys.stdin:
arg = line.strip()
rt_value = Get_huiwen(arg)
print "base:\n%s\nhuiwen:\n%s" % (arg, rt_value)
肚子咕咕叫了,下次补第三题。。。
【Python】:用python做下百度2014笔试题的更多相关文章
- [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】
/*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...
- python web的一些常见技术面试笔试题
1. 三次握手四次挥手 tcp建立连接的过程是三次挥手,断开连接是4次挥手. 三次握手:建立连接时 a. 客户端发送syn=1 seq=k给服务器 b. 服务器接收到之后知道有客户端想建立连接, ...
- python实现单链表反转(经典笔试题)
https://blog.csdn.net/su_bao/article/details/81072849 0.说在前面的话 链表结构,说难不难,说易不易,一定要亲自编程实现一下.其次就是一定要耐心, ...
- 百度2017笔试题:寻找n个员工中未打卡的那一个
声明:图片来自网络,笔者只是试着做了一下,然后做个记录. 拿到这个题目的时候,笔者首先想到的是二分.两个数组,一个是全体员工的集合A:一个是缺少一人的集合B.对A,B排序,再对B进行二分,得到B的中间 ...
- 2016届百度实习生前端笔试题上海卷a
1.写出javascript运行结果:alert(‘5’+5); 结果:alert()函数中不能进行算术运算或字符串拼接,故不会弹出对话框. 2.写出javascript运行结果:for(var ...
- 2015年百度实习生前端笔试题上海卷a
1.写出javascript运行结果:alert(‘5’+5); 结果:’55’ 2.写出javascript运行结果:for(var i=0; i<10; i++){} alert(i); 结 ...
- java笔试题13-11-21
中xxx科技公司java笔试题 今天去参加一个公司的面试,去先做了一份笔试题,妈的,太他妈难了(对于我来说,最后做完一个员工说你是不是投错简历了,都是空白,我说我做的大部分都对了..最后面试都没有,就 ...
- Python 的笔试题
其实大多数说学习Python 是纯兴趣,真的我不信,许多人已经工作了,没有那么多时间搞自己的纯兴趣了,都会为了生活奋斗,可以说转行来学python 就是未来加薪,当然,小编现在也快要准备工作了,所以也 ...
- python笔试题(1)
为了充实自己,小编决定上传自己见到的笔试题和面试题.可能要写好长时间,一时半会写不了多少,只能说遇到多少写多少吧,但是只要小编有时间,会持续上传(但是答案却不能保证,所以有看到错误的及 ...
随机推荐
- [GeekBand] STL vector 查找拷贝操作效率分析
本文参考文献::GeekBand课堂内容,授课老师:张文杰 :C++ Primer 11 中文版(第五版) :网络资料: 叶卡同学的部落格 http://www.leavesite.com/ htt ...
- WIN内核线程池函数
线程池 (本章节中样例都是用 VS2010 编译调试的) 线程池编写必须在 Windows Vista 操作系统(以及以上版本号的操作系统)下,且 C++ 编译器版本号至少是 VS2008 线程池的功 ...
- 【项目积累】对JSON数据的处理
[项目简述] 接触.NET项目非常长一段时间了,前台用的都是MVC框架.不知道大家是否想过一个问题.我们是怎样将数据显示到前台的,换句话说,MVC能够识别怎么样的数据形式?答案非常ea ...
- 【u235】背单词
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了.好在现在离考试还有一段时间,小Y决定从现 ...
- Android 对.properties文件的读取
/** * * @param filepath .properties文件的位置 */ public void checkFileExists(String filepath){ File file ...
- 树莓派的rc.local档(设置开机)
为了树莓派执行命令或程序时启动.需要被添加到顺序rc.local档.这是为那些谁执行后,直接要权力树莓派没有配置.或者不希望每次都手动启动该程序很实用. 的方法是使用cron和crontab. EDI ...
- CLR托管内存
在物理内存中观察CLR托管内存及GC行为 虽然看了一些书,还网络上的一些博文,不过对CLR托管内存细节依然比较模糊.而且因为工作原因总会有很多质疑,想要亲眼看到内存里二进制数据的变化. 所以借助w ...
- axios 提交 application/x-www-form-urlencoded
最近工作比较忙 , 喜欢上了用有道云做笔记 , 写博客就是为了记录自己的学习的点点滴滴 , 如果能对其他人有帮助当然最好了 , 我一定要将这个习惯进行下去 .. ..... 我们以前的前后交互方式一般 ...
- LockWindowUpdate的函数的用法
Application.ProcessMessages;LockWindowUpdate(Self.Handle); //锁住当前窗口 LockWindowUpdate(0)//解除锁定窗口 Lock ...
- CSS(网页样式语言)基础
所谓全栈,个体可以独立地完成系统的设计.开发.测试.部署以及运维.打通一个领域从无到有的全过程. 为什么会有 markdown 文本编辑显示工具呢,因为 html 太重了.markdown 是 htm ...