菜鸟学算法之动态规划01
来源:互联网 发布:手机淘宝天猫 编辑:程序博客网 时间:2024/05/16 07:35
问题描述
按照1-a, 2-b, 3-c, ... ,26-z 的对应关系可以对一串字符串进行编码, 例如 ace 可以编码为 135,
但对于135进行解码却有两种可能,其一是ace, 其二是me, 设计一个算法求解一串加密得到的数字
字符串对应着几种原文的可能性?
例:
输入:
135
输出:
2
输入:
1234
输出:
3
代码实现
#include <iostream>#include <vector>#include <string>using namespace std;int stringDecode(const string& str) {int sz = str.size();vector<int> vec(sz, 1);if (sz < 2) {return sz;}if (('1' == str[0]) || ('2' == str[1] && '6' >= str[1])) {vec[1] = 2;}for (int i = 2; i < sz; i++) {vec[i] = vec[i - 1];int n = str[i] - '0' + (str[i - 1] - '0') * 10;if (n >= 10 && n <= 26) {vec[i] += vec[i - 2];}}return vec[sz - 1];}int main() {while (1) {string str;cin >> str;cout << "可能的加密组合为数:" << stringDecode(str) << endl;}return 0;}
结果检验
0 0
- 菜鸟学算法之动态规划01
- 菜鸟学算法——动态规划(一)
- 菜鸟学算法——动态规划(二)
- 每天学一点算法-动态规划算法
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 算法之动态规划
- 【算法】之动态规划
- 动态规划算法之01背包问题
- 动态规划算法之01背包问题
- 趣学算法系列-动态规划
- 菜鸟学算法之POJ1636 Prison Rearrangement
- 菜鸟学算法之 POJ1011 Sticks
- WebStorm Vue ElementUI
- 关于java里面的自增自减运算(i++和++i)
- 计算机网络拓扑结构
- Spring完整的约束配置代码
- Oracle 11g R2+ RAC+ ASM+ OracleLinux6.4安装详解(2)Grid Infrastructure
- 菜鸟学算法之动态规划01
- C#笔记 -- 协变、逆变
- 集合相似度
- HTTP基本原理(简介)
- HTML5
- bzoj3390
- python语言学习——关于str
- 在64位 Windows7 运行regsvr32.exe提示不兼容
- 微信小程序开程之路(九)纯手工打造微信小程序业务服务器