把数字翻译成字符串
题目
给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”...25翻译成“z”。一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi。实现一个函数,用来计算一个数字有多少种不同的翻译方法。
class Solution { public: int translateNum(int num) { if (num < 0) { return 0; } string num_of_str = to_string(num); int len = num_of_str.length(); //表示num[0...i] 以i结尾的能够翻译的字符种类数 vector<int> dp(len, 0); dp[0] = 1;//1个字符肯定能够翻译 for (int i = 1; i < len; ++i) { dp[i] = dp[i - 1];//当前位置字符直接翻译 int num1 = num_of_str[i - 1] - '0'; int num2 = num_of_str[i] - '0'; if (num1 * 10 + num2 >= 10 && num1 * 10 + num2 <= 25) { if (i - 2 < 0) { dp[i] += 1; } else { dp[i] += dp[i - 2]; } } } return dp[len - 1]; } };
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统