题解 | #把数字翻译成字符串#
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 解码 * @param nums string字符串 数字串 * @return int整型 */ int solve(string nums) { //排除0 if(nums == "0") return 0; //排除只有一种可能的10 和 20 if(nums == "10" || nums == "20") return 1; //当0的前面不是1或2时,无法译码,0种 for(int i = 1; i < nums.length(); i++) { if(nums[i] == '0') if(nums[i - 1] != '1' && nums[i - 1] != '2') return 0; } vector<int> dp(nums.size(), 1); if(nums[0]=='1') { if(nums[1]>='1' && nums[1]<='9') dp[1]=2; } else if(nums[0]=='2') { if(nums[1]>='1' && nums[1]<='6') dp[1]=2; } for(int i=2; i<nums.size(); i++) { if((nums[i - 1] == '1' && nums[i] != '0') || (nums[i - 1] == '2' && nums[i] > '0' && nums[i] < '7')) dp[i] = dp[i - 1] + dp[i - 2]; else dp[i] = dp[i - 1]; } return dp[dp.size()-1]; } };
磨砂的指名者 文章被收录于专栏
怎么绘世呢?