小编hta*_*oyj的帖子

求以字母串表示的数字总和

str我在范围内有一串小写字母[a-z]。字符串中的几个字母组合在一起时代表一个数字,[0-9]即“零”= 0、“一”= 1、“二”= 2 等等。

字符串中的字符混乱。但是,保证字符串中的所有字符都可以用来组成一组数字。有些数字也可以重复。不存在ap等无效字符q

我的任务是求 所代表的数字之和str

示例 :
str= "oneeno" 应输出2 (1+1)
str= "onewtofoursevne" 应输出14 (1+2+4+7)

solve(s)表示求解 的特定子串str
我有一个字符串数组,v用于存储数字的拼写。v = {“零”,“一”,“二”,...“九”};

s只要我能找到代表数字的一组字符,我就会分解并添加数字值。

if (contains(s, v[i]) == true)
    dp[s-v[i]] = i + solve(s-v[i])
Run Code Online (Sandbox Code Playgroud)

s-v[i]v[i]表示从 中删除的字符集s。由于不可能以这种方式减去字符串,因此我s-v[i]change(s, v[i])(在我的代码中)替换。

这看起来像是一个具有多个重复子状态的递归函数。
例如 :solve(s - v[1] - v[4] - v[7]) = …

string algorithm recursion dynamic-programming

2
推荐指数
1
解决办法
147
查看次数