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];
}
};