Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 1693 Solved: 433
[Submit][Status]
Peter在手机上打字时一直用全键键盘来输入,但最近不知道怎么搞的,把全键键盘弄丢了,只剩下了9键键盘。一项喜欢高科技的Peter却不会用9键键盘打字。So,please help him!

9键键盘如上图所示。如果要输入字母'A',我们只需要按一次数字键2;如果要输入空格,则需要按数字键0;如果要输入字母'B'的话,我们需要连续按两次数字键2,按键序列为22。如果要输入的两个大写字母都在同一个数字键上,则需要按数字1作为分隔符,例如输入字母’JL’,需要先按一次数字键5,再按一次数字键1,再按3次数字键5,按键序列为51555。
为了使问题简化,我们假设Peter要输入的内容只有大写英文字母和空格。
输入有多组测试用例。每组测试用例占一行,为Peter要输入的内容,不超过20000个字符。
对于每组测试用例,输出一行,为得到所有内容所要按下的按键序列。
#include
#include
#include
#include
#include
intmain(){
char**p;
p=(char**)malloc(10*sizeof(char*));
*(p+1)="1...";
*(p+2)="ABC.";
*(p+3)="DEF.";
*(p+4)="GHI.";
*(p+5)="JKL.";
*(p+6)="MNO.";
*(p+7)="PQRS";
*(p+8)="TUV.";
*(p+9)="WXYZ";
*p=" ...";
chara[30000]={0};
while(gets(a)!=NULL){
intlen=strlen(a),i,j,k,flag=0,l;
for(i=0;i<strlen(a);i++)
for(j=0;j<10;j++)
for(k=0;k<4;k++)
if(a[i]==*(*(p+j)+k)){
if(j==0);
elseif(j==flag)
printf("1");
for(l=0;l<=k;l++){
printf("%d",j);
flag=j;
}
}
printf("\n");
}
return0;
}