📣 独立日限时特惠: VIP通行证立减$68
查看: 2501| 回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] Decode Ways 求解释

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 get_bits 于 2015-4-2 23:55 编辑

为什么输入序列是10的时候输出报错?
小白,求指导
跪谢了代码在二楼



上一篇:leetcode题解 有java 版本吗?
下一篇:Median of Two Sorted Arrays O(m+n)版本
🔗
 楼主| get_bits 2015-4-2 23:55:22 | 只看该作者
全局:
  1. class Solution {
  2. public:
  3.     int numDecodings(string s) {
  4.         if(s.size() == 0){
  5.             return 0;
  6.         }
  7.         else if(s.size() == 1)
  8.         {
  9.             return s[0] != '0' ? 1 : 0;
  10.         }
  11.         else if(s.size() == 2){
  12.             if(s[0] != '0' && s[1] == '0')
  13.             return 0;
  14.             if(s[0] != '0' && s[1] != '0' && (sum(s[0])*10 + sum(s[1])) <= 26 )
  15.             return 2;
  16.             else if (s[0] != '0' && s[1] != '0' && (sum(s[0])*10 + sum(s[1])) > 26 )
  17.             return 1;
  18.             else
  19.             return 0;
  20.         }
  21.         
  22.         int *num = new int[s.size()];
  23.         num[0] = s[0] != '0' ? 1 : 0;
  24.         num[1] = (s[0] != '0') && (s[1] != '0') + (s[0] != '0') && (s[1] != '0') && ((sum(s[0])*10 + sum(s[1])) <= 26);
  25.         
  26.         for(int i = 2; i<s.size(); i++){
  27.             num[i] = 0;
  28.             if(s[i] != '0'){
  29.             num[i] += num[i-1];
  30.             }
  31.             
  32.             if(s[i-1] != '0' && s[i] != '0' && ((sum(s[i-1])*10 + sum(s[i])) <= 26)){
  33.              num[i] += num[i-2];
  34.             }
  35.         }
  36.       return num[s.size()-1];  
  37.         
  38.     }
  39.    
  40.   int sum(char c){
  41.       return c - '0';
  42.   }
  43. };
复制代码
回复

使用道具 举报

🔗
碇真嗣 2015-4-3 01:16:23 | 只看该作者
全局:
本帖最后由 碇真嗣 于 2015-4-2 12:17 编辑

这个题不应该直接dp做吗?感觉LZ好像写烦了。。这个例子对应的貌似是12行?为啥就返回0了。。
回复

使用道具 举报

🔗
thevenin 2015-4-3 01:48:48 | 只看该作者
全局:

http://www.ninechapter.com/solutions/decode-ways/

你看看他家的解法吧,简单明了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表