Hackerrank垂直杆问题:输出为何逐字符分行?
问题原因及解决办法
- 核心问题:写入文件的代码逻辑错误。
solve函数返回的是一个字符串(比如"4.33"),但你用了'\n'.join(map(str, result))——字符串本身是可迭代对象,map(str, result)会把字符串的每个字符单独拆分出来,再用换行符连接,自然就变成了每个字符占一行的结果。 - 修复方法:直接把
result写入文件即可,不需要join和map操作。修改主函数里的写入代码:# 替换原来的两行写入代码 fptr.write(result) fptr.write('\n') - 额外优化提示:你的当前解法用了全排列,时间复杂度极高(O(n!)),当n稍微大一点就会超时。正确的思路应该是用数学期望,计算每个位置上的贡献,时间复杂度可以降到O(n²)甚至更低,避免超时问题。
内容的提问来源于stack exchange,提问作者tt123321
相关产品推荐
相关产品推荐

