笔试时没想明白,后面重新想了一下: def similarCount(s): N = len(s) if N == 1: return 0 dp = [[0] * 10 for _ in range(N)] dp[0][int(s[0])] = 1 for i in range(1, N): for j in range(10): cur = int(s[i]) diff = j - cur for k in range(10): pre = k + diff if 0 <= pre < 10: dp[i][j] += dp[i-1][pre] print(dp[i]) ans = 0 for j in range(10): ans += dp[-1][j] ans %= 1000000007 return ans - 1 q = int(input()) for i in range(q): s = input() ans = similarCount(s) print(ans) 不知道有没有bug