2023-2-17 BM69 把數字翻譯成字元串
2023-2-17 BM69 把數字翻譯成字元串 class Solution {
public:
/**
* 解碼
* @param nums string字元串 數字串
* @return int整型
*/
int solve(string nums) {
// write code here
if (nums == "0")
return 0;
if (nums == "10" || nums == "20") {
return 1;
}
for (int i = 1; i < nums.length(); i++) {
if (nums[i] == '0') {
if (nums[i-1] != '1' && nums[i-1] != '2') {
return 0;
}
}
}
int dp0 = 1, dp1 = 1, dp2 = 1;
for (int i = 2; i <= nums.length(); i++) {
if ((nums[i-2] == '1' && nums[i-1] != '0') || (nums[i-2] == '2' && nums[i-1] > '0' && nums[i-1] < '7')) {
dp2 = dp1 + dp0;
} else dp2 = dp1;
dp0 = dp1;
dp1 = dp2;
}
return dp2;
}
};