You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:10:36