7-83 九宫格输入法

简介: 7-83 九宫格输入法

7-83 九宫格输入法 (15 分)


假设有九宫格输入法键盘布局如下:


 [ 1,.?! ] [ 2ABC ] [ 3DEF  ]
 [ 4GHI  ] [ 5JKL ] [ 6MNO  ]
 [ 7PQRS ] [ 8TUV ] [ 9WXYZ ]
           [ 0空  ]


注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是0和空格字符,即按两次0输入空格。


你需要对于给定的按键组合,给出该组合对应的文本。


输入格式:


输入在一行中给出数个字符的按键组合(例如 999 表示按3次9),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符。


输出格式:


在一行中输出该按键组合对应的文本。


输入样例:


22 5555 22 666 00 88 888 7777 4444 666 44


结尾无空行


输出样例:


ALAN TURING


结尾无空行


#include<iostream>
using namespace std;
int main(){
    string s[10];
    s[0]=" ";
    s[1]=",.?!";s[2]="ABC";s[3]="DEF";
    s[4]="GHI";s[5]="JKL";s[6]="MNO";
    s[7]="PQRS";s[8]="TUV";s[9]="WXYZ";
    string temp,result="";
    while(cin>>temp){
        int len=temp.size();
        int len2=s[temp[0]-'0'].size()+1;
        while(len>len2) len-=len2;
        if(len==1){
            result=temp[0];
            cout<<result;
        }
        else{
            result=s[temp[0]-'0'][len-2];
            cout<<result;
        }
    }
    return 0;
}
目录
相关文章
|
8月前
|
Android开发
在安卓手机上,软键盘弹起来之后,文本框被遮挡
在安卓手机上,软键盘弹起来之后,文本框被遮挡
76 1
再学一道算法题: 九宫格输入法
再学一道算法题: 九宫格输入法
|
iOS开发
iOS开发- 分屏动画
iOS开发- 分屏动画
148 0
iOS开发- 分屏动画
|
自然语言处理 C++
制作有道词典——标题栏
制作有道词典——标题栏
制作有道词典——标题栏
|
Windows
Win系统 - 全屏看视频时任务栏没有自动隐藏怎么办?(上)
Win系统 - 全屏看视频时任务栏没有自动隐藏怎么办?(上)
738 0
Win系统 - 全屏看视频时任务栏没有自动隐藏怎么办?(上)
|
Windows
Win系统 - 全屏看视频时任务栏没有自动隐藏怎么办?(下)
Win系统 - 全屏看视频时任务栏没有自动隐藏怎么办?(下)
341 0
Win系统 - 全屏看视频时任务栏没有自动隐藏怎么办?(下)
|
API C# Windows
C# 输入法
原文:C# 输入法 C# 输入法     虽说输入法不是什么新事物,各种语言版本都有,不过在C#不常见;这就会给人一种误会:C#不能做!其实C#能不能做呢,答案是肯定的——三种方式都行:IMM、TSF以及外挂式。
996 0
|
C# C++ Windows
C# TSF 输入法的获取
原文 C# TSF 输入法的获取 起因: 「添雨跟打器」中存在一个问题。在 windows 8/10 里面,输入法就获取不到了。我一直没有去管这样的问题。但是也大致知道,可能是 TSF 架构的问题。
2253 0
|
vr&ar Android开发 图形学
Android系统的三种分屏显示模式
Google在Android 7.0中引入了一个新特性——多窗口支持,允许用户一次在屏幕上打开两个应用。在手持设备上,两个应用可以在"分屏"模式中左右并排或上下并排显示。在电视设备上,应用可以使用"画中画"模式,在用户与另一个应用交互的同时继续播放视频。
2530 0