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

Elixir计算两位数数字和:求基于标准库的优化实现建议

更简洁的Elixir实现方案:两位数各位数字求和

嘿,你的代码完全能解决问题,但确实可以借助Elixir的标准库函数让它更简洁高效!先给你两种更优的实现思路:

方案一:数学运算(最直接高效)

既然明确是两位数,用数学方法处理是最省性能的,和你提到的JS思路异曲同工。Elixir里用div/2做整数除法,rem/2取余数,直接完成数字拆分与求和:

def addTwoDigits(n) do
  div(n, 10) + rem(n, 10)
end

这个方法跳过了字符串转换的开销,直接对数字进行运算,对于固定两位数的场景来说是最优解。

方案二:优化字符串处理流程

如果想保留你原本的函数式数据转换思路,也可以用String.graphemes/1替代String.split("")——它会直接返回数字字符的列表,不用额外过滤空字符串;再配合Enum.sum/1替代手动写的reduce,代码会清爽很多:

def addTwoDigits(n) do
  n
  |> Integer.to_string()
  |> String.graphemes()
  |> Enum.map(&String.to_integer/1)
  |> Enum.sum()
end

这个版本比你的原代码少了Enum.filter步骤,而且Enum.sum/1比手动实现求和逻辑更直观。

关于你的原思路

其实你的原代码是很标准的函数式处理流程:把数字转成字符串→拆分字符→清理无效数据→转成整数→求和,逻辑完全没问题,只是可以通过更贴合场景的标准库函数来简化步骤~

内容的提问来源于stack exchange,提问作者Heron Rossi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:47:56