2018春招-今日头条笔试题-第三题(python)

时间:2021-04-11 15:35:58

题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版)

解题思路:

本题的做法最重要的应该是如何拼出‘1234567890’,对于输入表达试获得对应的结果利用python内置函数eval()即可以实现。利用5个字符串来表达‘1234567890’,如下(为了更好看清,字符用‘|’分割了一下)

'66666|....6|66666|66666|6...6|66666|66666|66666|66666|66666'
'6...6|....6|....6|....6|6...6|6....|6....|....6|6...6|6...6'
'6...6|....6|66666|66666|66666|66666|66666|....6|66666|66666'
'6...6|....6|6....|....6|....6|....6|6...6|....6|6...6|....6'
'66666|....6|66666|66666|....6|66666|66666|....6|66666|66666'
#-*- coding:utf-8 -*-

list_s=[ '66666....666666666666...66666666666666666666666666',
'6...6....6....6....66...66....6........66...66...6',
'6...6....66666666666666666666666666....66666666666',
'6...6....66........6....6....66...6....66...6....6',
'66666....66666666666....66666666666....66666666666']
n = int(input())
list_n=[]
#保存输入的表达式
for a in range(0,n):
a=raw_input()
list_n.append(a)
for b in list_n:
s = eval(b)
#将数字转化为list
s=[int(i) for i in str(s)]
for i in range(0,5):
#将每个数字的一行存在一个数组
string=[]
for j in s:
string.append(list_s[i][j * 5:j * 5 + 5])
#以‘..’输出每一行
print '..'.join(string)