破译敌军密码,电子对抗中我方截获一段标记为数字序列的敌军情报,通过间谍得知数字和小写英文字母之间存在联系,假如:0代表a,25代表z的话。请你破译出该数字序列有多少种不同的翻译方法。
12158有:5种不同的译方法:bcbfi,mbfi.bvfi,bcpi,mpi
int translateNum(int num) {
string src = to_string(num);
int *dp = new int[src.size() + 1];
dp[0] = 1;
dp[1] = 1;
for (int i = 1; i <= src.size(); ++i) {
if (i == 1) {
continue;
}
auto pre = src.substr(i - 2, 2);
if (pre <= "25" && pre >= "10") {
dp[i] = dp[i-1] + dp[i-2];
}
else{
dp[i] = dp[i-1];
}
}
return dp[src.size()];
}