注解
1、仔细观察A,B,…,Z与数字的对应关系。
2、简单dp
3、注意看Hint,注意0的位置。
代码
#include <iostream>
using namespace std;
typedef long long int LL;
int main() {
string s;
cin>>s;
while(s.compare("0")) {
int len = s.length();
LL dp[len+1];
dp[0] = 1;
dp[1] = 1;
for(int i=1; i<len; i++) {
string sub = s.substr(i-1, 2);
if(sub.at(1)=='0') {
dp[i+1] = dp[i-1];
} else if(sub.at(0)!='0' && sub.compare("27")<0) {
dp[i+1] = dp[i-1] + dp[i];
} else {
dp[i+1] = dp[i];
}
}
cout<<dp[len]<<endl;
cin>>s;
}
return 0;
}