比如小米的笔试题,给定1~n,在其中插入加减或空格,空格代表连接两个相邻数字,求表达式和为m的个数
n,m = map(int, raw_input().split())
count = [0]
def dfs(i,s):
if i == n:
if m == eval(s):
count[0] += 1
else:
dfs(i+1,s+'+'+str(i+1))
dfs(i+1,s+'-'+str(i+1))
dfs(i+1,s+str(i+1))
dfs(1,'1')
print(count[0])
当然也可以直接指定一个求和字符串,将上述代码中的str()换成字符串的小标表达就行