博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Decode Ways
阅读量:5122 次
发布时间:2019-06-13

本文共 798 字,大约阅读时间需要 2 分钟。

A message containing letters from A-Z is being encoded to numbers using the following mapping:

'A' -> 1'B' -> 2...'Z' -> 26

Given an encoded message containing digits, determine the total number of ways to decode it.

For example,

Given encoded message "12", it could be decoded as "AB" (1 2) or "L" (12).

The number of ways decoding "12" is 2.

 

用回溯写了一个,TLE。看到了个用DP的算法,非常赞,就贴过来了。其中三个量循环赋值是为了节省空间。

int numDecodings(string s) {    if(!s.size()||s[0]=='0')return 0;    int cur_2 = 1,cur_1 = 1,cur = 0;    for(int i = 2;i<=s.size();i++){        if(s[i-1]!='0')cur+=cur_1;        if(s[i-2]=='1'||(s[i-2]=='2'&&s[i-1]<'7'))cur+=cur_2;        cur_2 = cur_1;        cur_1 =  cur;        cur = 0;    }    return cur_1;}

  还记得聪哥的vim上设置的默认头:最容易想到的方法通常不是最佳的。

转载于:https://www.cnblogs.com/pengyu2003/p/3605123.html

你可能感兴趣的文章
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
zoj 2286 Sum of Divisors
查看>>
OO5~7次作业总结
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
OpenCV之响应鼠标(三):响应鼠标信息
查看>>
Android 画图之 Matrix(一)
查看>>
List<T>列表通用过滤模块设计
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>
poj2569
查看>>
使用pygal_maps_world.i18n中数据画各大洲地图
查看>>
sql server必知多种日期函数时间格式转换
查看>>
jQuery EasyUI 的下拉选择combobox后台动态赋值
查看>>
timeline时间轴进度“群英荟萃”
查看>>
python if else elif statement
查看>>
网络编程
查看>>
文本隐藏(图片代替文字)
查看>>
java面试题
查看>>
提高码力专题(未完待续)
查看>>
pair的例子
查看>>