【ATT】【second】Decode Ways
好多特殊情况。第二次做还是错了很多次,要好好考虑各种情况。
int numDecodings(string s) { // Note: The Solution object is instantiated only once and is reused by each test case. if(s.empty()||s[0]=='0') return 0; int cnt1 = 1, cnt2 = 1; int cnt = 1; //注意,初始时1. for(int i=1;i<s.size();i++) { if(s[i]=='0') { if(s[i-1]>='1'&&s[i-1]<='2') cnt = cnt1; else return 0; }else if(s[i-1]=='1'||(s[i-1]=='2'&&s[i]>=1&&s[i]<='6')) cnt = cnt1+cnt2; else cnt = cnt2; cnt1 = cnt2; cnt2 = cnt; } return cnt; }