给一串数字,变成对应字母序列,dp

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int numOfDecoding(string s,int len)
{
	if(!len || s[0]=='0')
		return 0;
	vector<int> nums(len,0);
	nums[0]=1;
	if(s[1]=='0'&& s[0]<='2')
		nums[1]=1;
	else if(s[0]=='1' ||(s[0]=='2'&& s[1]<='6'))
		nums[1]=2;
	else if(s[1]=='0')
		nums[1]=0;
	else
		nums[1]=1;
	for(int i=2;i<len;i++)
	{
		if(s[i]=='0' && s[i-1]<='2' && s[i-1]>'0')
			nums[i]=nums[i-2];
		else if(s[i-1]=='1' ||(s[i-1]=='2' && s[i-1]<='6'))
			nums[i]=nums[i-1]+nums[i-2];
		else if(s[i]=='0')
			nums[i]=0;
		else
			nums[i]=nums[i-1];
	}
	return nums[len-1];
}
int main()
{
	string s;
	while(cin>>s)
	{
		int len=s.length();
		cout<<numOfDecoding(s,len);
	}
	return 0;
 } 

全部评论

相关推荐

胖乎乎的花生米:首先,不冲大厂的情况下,这个简历也是有很大优化空间的,项目经历和校园经历放在最上面,荣誉和自我评价放下面,对经历的描述有些太简短宽泛,没有突出亮点,建议可以结合意向岗位,使用star法则+ai工具,扩充到至少每一条经历有一整行。做好整体格式清晰易读,上半部分突出优势,下半部分可以普通但是有亮点,这样会更好的
点赞 评论 收藏
分享
大耳朵屠屠:nb了,他怎么不说自己能联系阎罗王改生死簿,给学生减寿三年??
点赞 评论 收藏
分享
在抱佛脚的小松鼠很想回老家:挺好,自己做或者直接去环境好一点的店能吃的健康一点。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务