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

字典序最小字符串的排列数计算 乘积算法结果偏差问题排查

问题原因解答

你算法的核心逻辑(仅相同字符交换不改变字典序,总排列数为各字符独立排列数的乘积)是正确的,错误出在单个重复字符的排列数计算规则:

  • 当某个字符出现k次时,k个对应原字符串不同位置的相同字符可自由交换的排列数是 k的阶乘(k! = 1×2×…×k),不是直接取k的值。

你之前的第一个测试用例bbaa刚好巧合符合你的错误计算:a、b各出现2次,2! = 2,乘积2×2=4,和实际结果一致,导致你误把阶乘规则当成了直接乘出现次数。

用该规则验证偏差用例:
测试输入对应的重复字符计数为g:3、h:2、j:2、k:2,计算结果为:
3! × 2! × 2! × 2! = 6 × 2 × 2 × 2 = 48
和实际正确结果完全匹配。

另外你之前举例的aaabbbcc,正确计算结果应为3!×3!×2! = 72,不是你之前计算的18。


内容的提问来源于stack exchange,提问作者Kirti Purohit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:06:07