第一次参加这种线上题,觉得很刺激。虽然那20道逻辑题让我怀疑人生。。。可能智商需要充值
第一题:
输入两个字符串,
比如
A:aaabbb
B:aab
求所有的距离和
距离和:
aba 和aba 的距离为0,因为相等
aba和bab就是3,3个不等
所谓的所有,就是A中3个长度的所有字符串的和,aaabbb就是aaa,aab,abb,bbb
让你求和:
我写的python,用的是遍历暴力法:
# !/usr/bin/env python # coding=utf-8 while 1: wordone = raw_input() wordtwo = raw_input() lengthone=len(wordone) lengthtwo=len(wordtwo) he=0 for i in range(1+lengthone-lengthtwo): s=wordone[i:i+lengthtwo] for k in range(lengthtwo): if(s[k]!=wordtwo[k]): he+=1 print he break
然后70分,应该是超时了。
第二题,我懒得写介绍了,大概就是给你一串字符串,比如3,5,2,常规的套路是你用这些能构建出什么,这个却是你不能构建出来的,最小的数是多少。反正也是暴力法跑出来的,最后40分,暴力大法好2333
# !/usr/bin/env python # coding=utf-8 while 1: word = raw_input() shuzu=[[0,0],[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0]] for i in word: d = int(i) shuzu[d][1]+=1 jieshu=True num=1 while(jieshu): if(num==1): for i in shuzu: if((i[1]==0)&(i[0]<>0)): print i[0] jieshu=False break if(not jieshu): break else: #暴力大法好 num=10 while(jieshu): b = [[0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [7, 0], [8, 0], [9, 0]] for k in str(num): d=int(k) b[d][1]+=1 for p in range(10): if b[p][1]>shuzu[p][1]: print num jieshu=False break num+=1 break
emmm,不过第二个题我很不满意,我最开始是两个思路的,可惜因为时间限制,所以就按照最简单的暴力法写了。。。
希望线上笔试能过