【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;
}
浙公网安备 33010602011771号