数字字符串转化字母字符串

题目:现有一个数字字符串(全部由数字0--9组成),按照以下规则转化为由字母组成的字符串:

1---->a , 2----->b,3------>c, ... ... ,25---->y ,  26------>z 。如输入数字字符串“13201”,则输出的结果为:“acta”或"mta".设计一个程序,完成该转化功能,根据输入进来的数字字符串,输出其所有可能的字母字符串。(如不能转化,则输出“Can Not!”)

分析:根据转化规律,不难发现‘0’没有对应的字母,因此,‘0’必须依靠其前一位数字才能转化,而且,其前一位数字字符只能是‘1’和‘2’,不能为其他的数字字符。而‘1’可以与其后一位的任何数字字符组合并转化,但是,‘2’则只能与其后一位、范围在‘0’--’6‘的字符组合转化。需要注意的是,这些组合,不能导致其他后续‘0’(如果存在的话)的“孤立”(即不能借助1,2转化)。

#include 
using namespace std;

bool CanOrNot(char str[],int n)
{
	if(str==NULL||n<1||str[0]=='0')
		return false;
	for(int i=1;i
【未完,待续】

你可能感兴趣的:(R3层)