解码方法 12345678910111213141516171819class Solution { public: int numDecodings(string s) { int n = s.size(); s = ' ' + s; vector<int> f(n + 1); f[0] = 1; for (int i = 1; i <= n; i++) { // 如果当前字符是 1 ~ 9,那么可以自己单独形成一种解码方法 if (s[i] >= '1' && s[i] <= '9') f[i] += f[i - 1]; if (i > 1) { // 如果当前字符与前一个字符连起来的数值在 10 ~ 26,那么可以与之形成一种解码方法 int t = (s[i - 1] - '0') * 10 + (s[i] - '0'); if (t >= 10 && t <= 26) f[i] += f[i - 2]; } } return f[n]; }};