当前位置: 首页 > news >正文

在设计赚钱的网站有哪些上海职业技能培训机构一览表

在设计赚钱的网站有哪些,上海职业技能培训机构一览表,石河建设技校网站,解析域名网站1.题目 问题描述 小M获得了一个任务,需要将数字翻译成字符串。翻译规则是:0对应"a",1对应"b",依此类推直到25对应"z"。一个数字可能有多种翻译方法。小M需要一个程序来计算一个数字有多少种不同的…

1.题目

问题描述

小M获得了一个任务,需要将数字翻译成字符串。翻译规则是:0对应"a",1对应"b",依此类推直到25对应"z"。一个数字可能有多种翻译方法。小M需要一个程序来计算一个数字有多少种不同的翻译方法。

例如:数字12258可以翻译成 "bccfi", "bwfi", "bczi", "mcfi" 和 "mzi",共5种方式。


测试样例

样例1:

输入:num = 12258

输出:5

样例2:

输入:num = 1400112

输出:6

样例3:

输入:num = 2110101

输出:10

样例4:

输入:num = 25

输出:2

样例5:

输入:num = 1023

输出:4

2.思路

**定义状态:**dp[i]表示前i个字符可以翻译的方法数

状态转移:

遍历到第i位,最后一位可以翻译,根据分步计数乘法原理,dp[i]=dp[i-1]

如果后两位小于26,则后两位可以翻译,还有一种情况,根据分步计数加法原理,dp[i]=dp[i-1]+dp[i-2]

**初始化:**dp[0]=1

**目标状态:**dp[n-1]

3.代码

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int solution(int num) {// Please write your code here// 数字转字符串string str_num =  to_string(num);int n = str_num.size(); //字符串的大小vector<int> dp; //dp[i]表示到第i位有几种翻译方法dp[0] = 1; //第一位有一种翻译方法for (int i = 1; i < n; i++) {dp[i] = dp[i - 1];// 判断后两位是否小于25string last_two_str = to_string(str_num[i - 1]) + "" +  to_string(str_num[i]);int last_two_int;stringstream(last_two_str) >> last_two_int;if (last_two_int < 26) {dp[i] += dp[i - 2];}}return dp[n - 1];
}int main() {// You can add more test cases herestd::cout << (solution(12258) == 5) << std::endl;std::cout << (solution(1400112) == 6) << std::endl;std::cout << (solution(2110101) == 10) << std::endl;return 0;
}

Segmentation fault (core dumped) 是一个常见的运行时错误,通常是由于程序试图访问未分配的内存或试图访问已释放的内存导致的。以下是一些可能的原因和解决方法:

可能的原因:

数组越界:访问数组时超出了数组的边界。

空指针解引用:尝试访问一个空指针指向的内存。

未初始化的指针:使用了一个未初始化的指针。

递归深度过大:递归调用过深,导致栈溢出。

内存泄漏:分配的内存没有正确释放,导致后续操作出错。

  1. vector<int> dp; 未初始化大小:你在声明 dp 向量时没有指定大小,这会导致在访问 dp[0] 时出现越界错误。
  2. string last_two_str = to_string(str_num[i - 1]) + "" + to_string(str_num[i]); 错误to_string(str_num[i - 1]) 和 to_string(str_num[i]) 都是字符,而不是数字,直接拼接字符会导致错误的结果。
  3. dp[i - 2] 访问越界:当 i 为 1 时,dp[i - 2] 会访问 dp[-1],这会导致越界错误。
  4. 考虑str_num[i-1]=0的情况,后两位仅小于26也不一定能翻译成字符,还需要大于9
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int solution(int num) {// Please write your code here// 数字转字符串string str_num =  to_string(num);int n = str_num.size(); //字符串的大小vector<int> dp(n, 0); //dp[i]表示到第i位有几种翻译方法dp[0] = 1; //第一位有一种翻译方法for (int i = 1; i < n; i++) {dp[i] = dp[i - 1];// 判断后两位是否小于25string last_two_str = str_num.substr(i - 1, 2); //取后两位if (stoi(last_two_str) < 26 && stoi(last_two_str) > 9) {if (i == 1) {dp[i] += 1;}else{dp[i] += dp[i - 2];}}}return dp[n - 1];
}int main() {// You can add more test cases herestd::cout << (solution(12258) == 5) << std::endl;std::cout << (solution(1400112) == 6) << std::endl;std::cout << (solution(2110101) == 10) << std::endl;return 0;
}

4.参考资料

《剑指 Offer》46. 把数字翻译成字符串【LeetCode 力扣官方题解】_哔哩哔哩_bilibili

http://www.yayakq.cn/news/900598/

相关文章:

  • 中英文切换网站怎么做怎样用xampp做网站
  • 中卫网站推广优化公司移动端关键词优化
  • 厦门做网站个人网站建设项目的预算
  • 天津网站开发公司定制制作网站设计
  • 服务器可以做几个网站吗长春网站建设找源晟
  • 国外 素材 网站建筑模型网站
  • 如何申请一个网站网站建立健全举报工作机制
  • 重庆品牌型网站建设多少钱网站的服务器是什么
  • 如何制作网站机器人a链接下载wordpress
  • 免费网站建设入门龙岗品牌网站建设
  • 做彩网站怎么做论坛社区网站
  • 建设苏州旅游网站的方案策划书单仁营销网站的建设
  • 甘肃农村网站建设项目营销推广方案
  • 一个网站怎么做新闻模块南京 公司网站制作
  • 网站建设工作分解找活做的网站
  • 腾讯网站国家企业信息系统公示系统下载
  • 西安北郊做网站公司中国企业500强榜单2023
  • 企业网站做口碑营销微网站建设的第一步是进行首页的设置
  • wordpress登陆注册界面seo教程pdf
  • 苏州相城区做网站公司温州优化售后
  • 淘宝网站建设目的网站建设工作内容
  • 建设网络文化网站的请示建设银行官方网站注册
  • 网站 asp.net php页面设置标签wordpress
  • 企业建站技术access 网站内容管理系统 哪个好 下载
  • html怎么设置网站吗织梦网站下载地址
  • 深圳买门的网站建设免认证域名注册
  • 天津网站快速备案网站建设顾问
  • 织梦 网站源码城乡住房建设部网站
  • 可以做微积分的网站牡丹江建设厅网站
  • 学做电商网站院感质控中心网站建设 申请