面试字节跳动数据抓取实习生有感

本着海投的想法~投了一堆公司,没想到居然收到了字节跳动的面试,于是抱着长见识的想法过去了,果不其然,被虐的体无完肤。面试官出的第一道编程题我就蒙蔽了。。用Python实现螺旋矩阵,因为根本就没有做过这方面的东西,一时半会脑子里也没有任何思路,,干瞪了几分钟,就歇菜了。

'''
输入N, 打印 N*N 螺旋矩阵
比如 N = 3,打印:
1 2 3
8 9 4
7 6 5

N = 4,打印:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
'''
n = int(input('请输入数n:'))
#初始化数组
arr = [[0]*n for i in range(n)]
#递归解决
def dfs(arr, x, y, start, n):
    if n<=0:return 0
    if n==1:
        arr[x][y] = start
        return 0
    #up
    for i in range(n):
        arr[x][y+i] = start
        start += 1
    #right
    for i in range(n-1):
        arr[x+1+i][y+n-1] = start
        start += 1
    #down
    for i in range(n-1):
        arr[x+n-1][y+n-2-i] = start
        start += 1
    #left
    for i in range(n-2):
        arr[x+n-2-i][y] = start
        start += 1
    dfs(arr,x+1,y+1,start,n-2)

a = dfs(arr,0,0,1,n)
#格式化输出print
l = len(str(n*n))+1
format = ('%'+str(l)+'d')*n
for tmp in arr:
    print (format%tuple(tmp) )

然后因为答不出来么,于是就问了第二道。。输入'www.toutiao.com.cn',输出'cn.com.toutiao.www' 要求空间复杂度为O(1),时间复杂度为最优,当时我大脑就懵了,空间复杂度,那是个啥。。反正是没有写出来。。。

'''
要求输入www.toutiao.com.cn输出cn.com.toutiao.www,空间复杂度为O(1),时间复杂度为最小
'''
s='www.toutiao.com.cn'
print(id(s))
s=s.split('.')
s=s[::-1]
s='.'.join(s)
print(s)
print(id(s))

好气哦,事后才发现这个题其实这么简单,都怪自己基础学的真垃圾。连空间复杂度都不知道。。。哎,努力吧,一定要把基础搞扎实。

 

你可能感兴趣的:(面试)