近期公司笔试编程题(3)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zzb2019/article/details/82429253

一条26个字母组成的消息,经过加密变成了数字流,加密方式如下:

‘A’->1 ‘B’->2 …… ‘Z’->26

现在给一个加密的消息,判断多少种解密方式。

示例:

input:12

output:2

 

intput:1212

output:5

int decode(char *src)
{
	assert(src != NULL);
	int n = strlen(src);
	int number1 =1, number2=1;
	for(int i=0;i<n;++i)
	{
		if (*(src + i) == '1' &&i != n - 1)
		{
			number1 *= 2;
		}
		else if(*(src + i) == '2'&&i != n - 1)
		{
			if (*(src + i + 1) < '7')
				number2 *= 2;
		}
	}
	return number1 + number2 - 1;
}
int main()
{
	char a[] = "121212";
	int result = decode(a);
	cout << result << endl;
	
	system("pause");
	return 0;
}

 

 

 

猜你喜欢

转载自blog.csdn.net/zzb2019/article/details/82429253
今日推荐