ダイナミックプランニング(数字からアルファベットへの変換)--ビジネススープ
1482 ワード
タイトルの説明
アルファベットを数字に符号化する方法があります:'a'->1,'b->2',...,'z->26'.
次に、可能な復号結果を示す一連の数字を与えます.
説明を入力:
出力の説明:
例1
入力
コピー
12
しゅつりょく
コピー
2
説明
2 (”ab” ”l”)
例2
入力
コピー
31717126241541717
しゅつりょく
コピー
192
説明
192
#include
#include
#include
using namespace std;
int main(){
string Input;
cin >> Input;
vector dp(Input.length() + 1,0);
dp[0] = 1;
for(int i = 0;i < Input.length();i ++){
if(i > 0 && stoi(Input.substr(i - 1,2)) >= 10 && stoi(Input.substr(i - 1,2)) <= 26){
if(Input[i] == '0')
{
dp[i + 1] += dp[i - 1];
}
else{
dp[i + 1] += dp[i - 1] + dp[i];
}
}
else if(Input[i] == '0'){
cout << "0" << endl;
return 0;
}
else{
dp[i + 1] += dp[i];
}
}
cout << dp[Input.length()] <