str我在范围内有一串小写字母[a-z]。字符串中的几个字母组合在一起时代表一个数字,[0-9]即“零”= 0、“一”= 1、“二”= 2 等等。
字符串中的字符混乱。但是,保证字符串中的所有字符都可以用来组成一组数字。有些数字也可以重复。不存在a、p等无效字符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]) = …