国庆节最后一天,明天就要上班了,闲来无事做做百度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.代码

  1. #!/bin/env/python
  2. # -*- encoding:utf- -*-
  3. #Filename: .py
  4.  
  5. import sys
  6.  
  7. def Get_base_out(num, length):
  8. '''Get_base_out method'''
  9. for i in range(int(num)+, **length):
  10. result = Judge(i, length)
  11. if result == True:
  12. return i
  13. return -
  14.  
  15. def Get_base1_out(num, length):
  16. '''Get_base1_out method'''
  17. no_repeated_num = str()
  18. for i in range(,length):
  19. if i % == :
  20. no_repeated_num += ''
  21. else:
  22. no_repeated_num += ''
  23. return no_repeated_num
  24.  
  25. def Judge(suspect, length):
  26. ''' Judge method'''
  27. temp = str(suspect)
  28. for i in range(,length-):
  29. if temp[i] == temp[i+]:
  30. return False
  31. return True
  32.  
  33. if __name__ == "__main__":
  34. for line in sys.stdin:
  35. base = line.strip()
  36. length = len(base)
  37. court = Get_base_out(base, length)
  38. if court == -:
  39. court = Get_base1_out(base, length)
  40. print court

二:

A.既然找东西,肯定都遍历一遍喽,那只有想办法在一遍遍历中就完成任务,计划用两个变量分别存储回文自串的位置和回文字串的长度。从头到尾遍历

判断下就完事。

B.代码:

注:没写123321这种类型的回文自串,方法一样就得再敲点代码

python有个好处,就是列表负向不会越界,HoHo~

  1. #!/bin/env/python
  2. # -*- encoding:utf- -*-
  3. #Filename: .py
  4.  
  5. import sys
  6.  
  7. def Find_point(base, index):
  8. '''Find point method'''
  9. rt_point = -
  10. if base[index-] == base[index+]:
  11. rt_point = index
  12. return rt_point
  13.  
  14. def Get_length(base, point, length):
  15. '''Get huiwen length'''
  16. rt_len = -
  17. for i in range(, (length+)/):
  18. if point - i >= and point + i < length:
  19. if base[point-i] == base[point+i]:
  20. rt_len = i
  21. else:
  22. break
  23. else:
  24. break
  25. return rt_len
  26.  
  27. def Get_huiwen(init_in):
  28. '''Get huiwen'''
  29. base = str(init_in)
  30. length = len(base)
  31. huiwen_point = -
  32. huiwen_len = -
  33. for i in range(, length - ):
  34. tmp_point = -
  35. tmp_len = -
  36. tmp_point = Find_point(base, i)
  37. if tmp_point != -:
  38. tmp_len = Get_length(base, tmp_point, length)
  39. if tmp_len > huiwen_len:
  40. huiwen_point = tmp_point
  41. huiwen_len = tmp_len
  42. if huiwen_point == - and huiwen_len == -:
  43. return "None"
  44. start = huiwen_point - huiwen_len
  45. end = huiwen_point + huiwen_len +
  46. return base[start:end]
  47.  
  48. if __name__ == "__main__":
  49. for line in sys.stdin:
  50. arg = line.strip()
  51. rt_value = Get_huiwen(arg)
  52. print "base:\n%s\nhuiwen:\n%s" % (arg, rt_value)

肚子咕咕叫了,下次补第三题。。。

【Python】:用python做下百度2014笔试题的更多相关文章

  1. [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】

    /*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...

  2. python web的一些常见技术面试笔试题

    1. 三次握手四次挥手   tcp建立连接的过程是三次挥手,断开连接是4次挥手. 三次握手:建立连接时 a. 客户端发送syn=1 seq=k给服务器 b. 服务器接收到之后知道有客户端想建立连接, ...

  3. python实现单链表反转(经典笔试题)

    https://blog.csdn.net/su_bao/article/details/81072849 0.说在前面的话 链表结构,说难不难,说易不易,一定要亲自编程实现一下.其次就是一定要耐心, ...

  4. 百度2017笔试题:寻找n个员工中未打卡的那一个

    声明:图片来自网络,笔者只是试着做了一下,然后做个记录. 拿到这个题目的时候,笔者首先想到的是二分.两个数组,一个是全体员工的集合A:一个是缺少一人的集合B.对A,B排序,再对B进行二分,得到B的中间 ...

  5. 2016届百度实习生前端笔试题上海卷a

    1.写出javascript运行结果:alert(‘5’+5); 结果:alert()函数中不能进行算术运算或字符串拼接,故不会弹出对话框.   2.写出javascript运行结果:for(var ...

  6. 2015年百度实习生前端笔试题上海卷a

    1.写出javascript运行结果:alert(‘5’+5); 结果:’55’ 2.写出javascript运行结果:for(var i=0; i<10; i++){} alert(i); 结 ...

  7. java笔试题13-11-21

    中xxx科技公司java笔试题 今天去参加一个公司的面试,去先做了一份笔试题,妈的,太他妈难了(对于我来说,最后做完一个员工说你是不是投错简历了,都是空白,我说我做的大部分都对了..最后面试都没有,就 ...

  8. Python 的笔试题

    其实大多数说学习Python 是纯兴趣,真的我不信,许多人已经工作了,没有那么多时间搞自己的纯兴趣了,都会为了生活奋斗,可以说转行来学python 就是未来加薪,当然,小编现在也快要准备工作了,所以也 ...

  9. python笔试题(1)

            为了充实自己,小编决定上传自己见到的笔试题和面试题.可能要写好长时间,一时半会写不了多少,只能说遇到多少写多少吧,但是只要小编有时间,会持续上传(但是答案却不能保证,所以有看到错误的及 ...

随机推荐

  1. OC常用数据类型大全解

    UI基础 OC常用数据类型 Block Block封装了一段代码,可以在任何时候执行 Block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别 ...

  2. 浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移

    http://blog.csdn.net/dba_waterbin/article/details/8996872 ㈠ Redis 与 MySQL 的耦合性            在业务架构早期.我们 ...

  3. 高并发測试工具webbench

    1.简单介绍 webbench最多能够模拟3万个并发连接去測试server的负载能力.编译和配置简单,仅基于TCP协议上对server进行測试. Webbench也是开放源代码.从代码上看,每一个cl ...

  4. const常量用extern声明定义的问题(extern变量不能在使用类里初始化)

    test.h #ifndef TEST_H_ #define TEST_H //常量声明和定义采取这种方法即可 const int a = 20;  //不报错,因为const变量链接属性默认是内部链 ...

  5. C#之Linq、where()、FindAll()的区别

    原地址 C#之Linq.where().FindAll()的区别 对于实现了IEnumerable接口的类.类型.集合可以使用Linq.Linq的扩展方法where().FindAll()来查询符合谓 ...

  6. Spring boot+RabbitMQ环境

    Spring boot+RabbitMQ环境 消息队列在目前分布式系统下具备非常重要的地位,如下的场景是比较适合消息队列的: 跨系统的调用,异步性质的调用最佳. 高并发问题,利用队列串行特点. 订阅模 ...

  7. jQuery.noop

    一个空函数 当你仅仅想要传递一个空函数的时候,就用他吧.这对一些插件作者很有用,当插件提供了一个可选的回调函数接口,那么如果调用的时候没有传递这个回调函数,就用jQuery.noop来代替执行.

  8. negative binomial(Pascal) distribution —— 负二项式分布(帕斯卡分布)

    1. 定义 假设一串独立的伯努利实验(0-1,成功失败,伯努利实验),每次实验(trial)成功和失败的概率分别是 p 和 1−p.实验将会一直重复下去,直到实验失败了 r 次.定义全部实验中成功的次 ...

  9. .net core实现前后端彻底分离

    问题的关键在跨域 1.我们在services里面 添加跨域内容如下: public void ConfigureServices(IServiceCollection services) { //这个 ...

  10. 将枚举转成SelectListItem

    代码如下: /// <summary> /// 将一个枚举转化成一个List<SelectListItem> /// </summary> /// <type ...