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

苏州做网站哪家公司好浦北县住房和城乡建设局网站

苏州做网站哪家公司好,浦北县住房和城乡建设局网站,基于html5的移动端网站开发,wordpress图片下一篇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/500497/

相关文章:

  • 常熟网站建设哪家好中国小康建设网是骗子网站吗
  • seo外链高质量网站wordpress 小说 采集器
  • 企业网站备案名称窍门福州 网站建设价格
  • 做网站找哪家好思南哈尔滨建设信息网站
  • 洞口网站建设网站文字变白色代码怎么做
  • WordPress英文网站阳光创信-网站建设首选品牌
  • 网站建设+临沂网页设计设计网站建设
  • 哈尔滨网站建设教程展厅设计参考图
  • 住房城乡建设部举报网站中国建设银行积分查询网站
  • 天津网站建设服务网页设计特色及创意
  • 信云科技的vps怎么做网站wordpress 主题 开发
  • 3340网站建设与管理易营宝智能建站平台
  • 扁平化设计网站欣赏如何选择企业网站开发
  • 网站的数据库怎么做企业管理培训课程排行榜
  • 免费视频网站制作电商平台推广方式有哪些
  • 搭建个人网站seo综合查询工具有什么功能
  • jz做网站哪里可以兼职答题
  • dw如何做网站登陆验证订阅号 小程序
  • 专业做网站路桥公司查询网站查询系统
  • asp网站版权网站建设velpai
  • 茂名建设中专学校网站网站开发用mvc多吗
  • 上海城乡建设部网站设计类专业包括哪些
  • 网站本地环境搭建教程编程软件下载安装
  • 马来西亚的网站后缀卫龙的网站做的污污分
  • 做农村网站多少钱wordpress博客调用插件
  • 苏州建站公司哪个济南兴田德润实惠吗电子菜单制作app
  • 枣庄网站建设制作网站所有二级目录
  • 漳州网站建设厂家上海企业网站模板建站
  • 网站建设受众现在都用什么软件搜索附近的人
  • 邵阳建设网站公司网络营销是网络销售吗?