5.17的字节笔试题
第一题 按照要求对字符串的处理
num = int(input()) data = [] s = '' for i in range(num): nums = input().split() if nums[0]=="1": s+=nums[1] data.append(nums) elif nums[0]=='2': d = s[-int(nums[1]):] s = s[:-int(nums[1])] data.append([nums[0],d]) elif nums[0]=='3': print(s[int(nums[1])-1]) else: list1 = data[-1] if list1[0]=='1': leng1 = len(list1[1]) s=s[:-leng1] else: s += list1[1] data.pop()第二题,求一个字符串,按照他给的字典数据,可以有多少翻译方法,典型的回溯法
最后结果要取一个很大的数的余数。
text = input() if not text: print(0) num = int(input()) data = [] for i in range(num): word = input() data.append(word) global count count = 0 def dfs(s): if not s: global count count+=1 else: for i in range(len(s)): if s[:i+1] in data: dfs(s[i+1:]) dfs(text) print(count)做了2道了就没做了,要去吃饭了。不过我看了下后面的2道。也不难,比较好做。