class Solution { private: vector<int> f; public: int getF(int index) { if (index < 0) return 1; else return f[index]; } int numDecodings(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function if (s.size() == 0) return 0; f.resize(s.size()); for(int i = 0; i < s.size(); i++) { f[i] = 0; if (i >= 1) { string a(s, i - 1, 2); if ("10" <= a && a <= "26") f[i] += getF(i-2); if ('1' <= s[i] && s[i] <= '9') f[i] += getF(i-1); } else { if ('1' <= s[i] && s[i] <= '9') f[i] = 1; } } return f[f.size() - 1]; } };
原文链接: https://www.cnblogs.com/tgkx1054/archive/2013/04/21/3033930.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/85428
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!