我为你解决了这个问题:
“这是一个包含的句子 _ 0 _ 1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9位“使其逻辑正确。所以重点是,如果有一个下划线,你需要放一个数字以便整个数字 句子变成了现实。即,字符串中有1 0,5 1,等等。
我在网上找不到答案。我们粗暴地用我的室友强制手动=)并找到一个解决方案:
1 0,7 1 1,3 2 2,3 3,1 5,1 1,6,7 7,1 1 9
您如何将此问题作为编程问题来解决?你会怎么做暴力实施?有一个聪明的方法来解决这个问题吗?有不同的解决方案吗?
答案 0 :(得分:2)
蛮力解决方案相当容易。
尝试每个角色的每个可能出现次数。将目标出现次数与实际出现次数分开,并比较两者。
initialize a 'target' array to the target number of occurrences of each character
(initial values don't matter - they are assigned before being checked)
initialize an 'occurrences' array to the actual number of occurrences
(initial values are all 1's in this case)
call bruteForce(0)
bruteForce(value)
if value > greatest value
check data and exit is successful
for i = 1:9
target[value] = i
// fail early - not strictly necessary, but should help running time
if value >= i && occurrences[i] + 1 > target[i]
continue
occurrences[i]++
// recurse
bruteForce(value + 1)
occurrences[i]--