ITPub博客

首页 > 数据库 > 数据库开发技术 > 【每周一坑】求乘积最大

【每周一坑】求乘积最大

原创 数据库开发技术 作者:Crossin的编程教室 时间:2017-04-28 15:31:21 0 删除 编辑

明天就是五一小长假了,又到了换个地方领略祖国大好河山上的人民的时候了,祝大家长假愉快。

在放假之前,利用一点儿闲暇时间,看看本周的题目吧。

设定一个长度为 N 的数字串,将其分为两部分,找出一个切分位置,使两部分的乘积值最大,并返回最大值。

示例:

def product(num):
  '''
  >>>product(312)
  62
  >>>product(1234)
  492
  >>>product(12345)
  6170
  >>>product_2(123456)
  74070
  '''

附加题:

输入的数字串可以重新打乱排列,比如输入 123 ,打乱排列之后会有 132,213,231,312,321 等情况,其他条件不变,求最大值。

def product_2(num):
  '''
  >>>product_2(1234)
  1312
  >>>product_2(12345)
  22412
  >>>product_2(123456)
  342002
  '''

题目介绍完毕。




【程序员的浪漫】解答

上周的题目主要考察 python 中两大加密模块的知识,由于 hashlib.md5 无法简单的破解,所以给出了 4 个选项,按照先 md5 加密,然后 base64 加密的顺序逐个遍历选项便可以得到正确答案。

代码:

import base64import hashlib

choices = [        
'多喝热水',        
'我们在一起吧',        
'我选择原谅你',        
'别说话,吻我'        ]
encrypted_string = 'NDRiMWZmMmVjZTk5MTFjMWI1MDNkYTY0MzZlYTAzMTA=\n'

def decrypt(choices,string):    for i in choices:        md5 = hashlib.md5()        md5.update(i.encode('utf-8'))        md5_s = md5.hexdigest()        base64_s = base64.encodestring(md5_s.encode('utf-8'))                if base64_s == string.encode('utf-8'):                      return i print(decrypt(choices,encrypted_string))

上期有很多同学都答对了,答案是 "多喝热水" 。恭喜以下同学:

YUAN,王任,GS,大魔王Fisher,痴梦。

另外,代码也可以参考:

@王任:http://paste.ubuntu.com/24426729/

@无名同学:https://gist.github.com/FingerRec/e97704192eeab1945807c78f299ef51e




『码上行动』在线学习班正在开放中,详情回复 码上行动

近期文章推荐阅读:

喏,你们要的 PyCharm 快速上手指南

给伸手党的福利:Python 新手引导

只学2个月编程能写出什么代码?他们表示:You can you code!

如何用100行Python代码做出魔性声控游戏“八分音符酱”

数据分析:当赵雷唱民谣时他唱些什么?

一行代码扫出“敬业福”

我扒了杜蕾斯的微博

Python 爬虫爬取美剧网站

今天,你抢到票了吗?

爆款游戏《贪吃蛇大作战》的 Python 实现




欢迎加入

Crossin的编程教室

crossincode.com

读者交流QQ群:522415386

微信请加 crossin11 留言入群(新手/进阶)


  请把我们分享给身边爱学习的小伙伴 :)  


点击左下角“阅读原文”,查看更多学习资源

原文作者:Crossin的编程教室;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2015-06-05

  • 博文量
    498
  • 访问量
    200478