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

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

为什么我常常对做题产生恐惧,因为可能为了一个不算难的问题不知不觉绕进去,这显然是不值得的。这题就是如此。

还要注意,java && 的优先级高于||的优先级,而不是同级。

public int numDecodings(String s) {                 if (s.length() == 0 || s.charAt(0) == '0') return 0 ; //0开头直接无法解码        //s[i-1] has r1 decode ways , s[i-2] has r2 decode ways        int r1 = 1 ;        int r2 = 1 ;              for (int i = 1 ; i < s.length() ; i ++){            //这里是if, if, else,不是if, else if, else            if (s.charAt(i)== '0'){              r1 = 0;            }            //java && 的优先级高于||的优先级,而不是同级。            if (s.charAt(i-1) == '1' || s.charAt(i-1) == '2' &&  s.charAt(i)<='6'){                r1 = r1 + r2 ;                r2 = r1 - r2 ;            }            //新加入的一位>6            else {                r2 = r1 ;            }        }        return r1 ;    }复制代码

这代码我是抄https://discuss.leetcode.com/topic/2562/dp-solution-java-for-reference 这里的,代码是很短,总体思路我是懂,但是对于corner case的处理,感觉很玄,因为它在看似不知不觉间处理了很多的test case。

也许我该试着理解一下code ganker的代码,虽然很长。 http://blog.csdn.net/linhuanmars/article/details/24570759/

这题就先如此。

转载于:https://juejin.im/post/5a3132f351882533d02310c1

你可能感兴趣的文章
样式集小记上
查看>>
学习hibernate(五) -- hibernate映射关系
查看>>
mysql集群环境搭建
查看>>
HAProxy安装与配置(一)
查看>>
使用wireshark分析HTTPS流程的建立
查看>>
MySQL存储引擎
查看>>
几种排序算法的比较(冒泡、快速、Shell排序)
查看>>
Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
查看>>
python学习笔记一:python基础知识
查看>>
MATLAB 线性运算之图像相加去噪
查看>>
我的友情链接
查看>>
有类和无类路由下的路由匹配原则
查看>>
Linux命令行(console)屏幕分辨率调整
查看>>
《完全用Linux工作》作者:王垠
查看>>
Excel从右向左查找
查看>>
UbuntuServer安装Node.js
查看>>
使用模板创建linux虚拟机网卡eth0无效解决方法
查看>>
送给python新手关于pip用法和虚拟环境用法的介绍(英文)
查看>>
3月11日Linux课程笔记
查看>>
Nginx配置——禁止指定user_agent
查看>>