91. Decode Ways
class Solution { public: int numDecodings(string s) { if(s.empty() || (s[0]-'0')==0) return 0; vector<int> f(2,0); f[0]=1; // f[1]=1; for(int i=2;i<=s.size();i++){ int first=s[i-1]-'0'; int second=(s[i-2]-'0')*10+(s[i-1]-'0'); int temp=0; if(first >= 1 && first <= 9) //!!! temp+=f[(i-1)%2]; if(second<=26 && second>=10) temp+=f[(i-2)%2]; f[i%2]=temp; } return f[s.size()%2]; } };
文章来源: 91. Decode Ways