• [山东科技大学OJ]1490 Problem F: 该按哪些键


     

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 1693  Solved: 433
    [Submit][Status]

    Description

           Peter在手机上打字时一直用全键键盘来输入,但最近不知道怎么搞的,把全键键盘弄丢了,只剩下了9键键盘。一项喜欢高科技的Peter却不会用9键键盘打字。So,please help him!

    c.jpg

           9键键盘如上图所示。如果要输入字母'A',我们只需要按一次数字键2;如果要输入空格,则需要按数字键0;如果要输入字母'B'的话,我们需要连续按两次数字键2,按键序列为22。如果要输入的两个大写字母都在同一个数字键上,则需要按数字1作为分隔符,例如输入字母’JL’,需要先按一次数字键5,再按一次数字键1,再按3次数字键5,按键序列为51555。

           为了使问题简化,我们假设Peter要输入的内容只有大写英文字母和空格。

     

    Input

        输入有多组测试用例。每组测试用例占一行,为Peter要输入的内容,不超过20000个字符。

     

    Output

        对于每组测试用例,输出一行,为得到所有内容所要按下的按键序列。

     

    Sample Input

    I LOVE YOU HELLO WORLD

    Sample Output

    444055566688833099966688 44335551555666096667775553

    HINT

     

    Append Code

     

    [Submit][Status]


    #include

    #include

    #include

    #include

    #include

    int main(){

        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=" ...";

        char a[30000]={0};

        while(gets(a)!=NULL){

            int len=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);

                            else if(j==flag)

                                printf("1");

                            for(l=0;l<=k;l++){

                                printf("%d",j);

                                flag=j;

                            }

                        }  

        printf("\n");

    }

    return 0;

    }

  • 相关阅读:
    人生的思考
    linux系统下启停nginx的命令
    堆排序(数据结构)
    GIS学习笔记(六):3D数据可视化
    前端html+css面试题
    【课程作业经验】基于MindSpore的YOLOv3-Darknet53的车辆检测计数实现
    【华为机试真题 JAVA】执行时长-100
    隆重推出 Incredibuild 10
    JTextArea 显示行号
    MySQL 日志管理、备份与恢复
  • 原文地址:https://blog.csdn.net/m0_73840805/article/details/127874887