博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ny643 发短信 stl库 map函数
阅读量:7283 次
发布时间:2019-06-30

本文共 2202 字,大约阅读时间需要 7 分钟。

发短信

       
时间限制:
1000 ms  |            内存限制:
65535 KB
       
难度:
3  
描述
下图是手机常用的九键英文输入法界面,如果要输入字母'A',我们只
需要按一次数字键2,按键顺序记为2;如果要输入字母'B'的话,我们需要连续按两次数字键2,按键顺序记为22;同理:字母'C’需要连续按3次数字键2,按键顺序记为222。通过这种方法,我们用手机10多个键就能输入26个英文字母。
现在你的任务是统计一段英文用手机输入的按键顺序,同样,你也要能把按键顺序翻译成相应的英文内容。
为了使问题简化,我们假设内容只有大写英文字母和空格。
输入         有多组测试数据
每组测试数据占一行,有两种情况:
(1)短信内容(只含有若干个空格和大写字母,不超过1000个字符)
(2)短信按键顺序(只含有若干空格和数字,其中第一个肯定是数字,不超过1000个字符)         输出         对于每组测试数据:
如果是短信内容,输出每个字母的按键顺序,每个字母的按键顺序用空格隔开
如果是按键顺序,输出它代表的内容
  样例输入                    
I LOVE YOUHELLO WORLD444 0 555 666 888 33 0 999 666 8844 33 555 555 666 0 9 666 777 555 3
   样例输出                    
444 0 555 666 888 33 0 999 666 8844 33 555 555 666 0 9 666 777 555 3I LOVE YOUHELLO WORLD
   编译代码:刚学c++,借用的库:
#pragma warning(disable:4786)#include
#include
#include
#include
#include
using namespace std;map
m;map< string , string >::iterator it ;void init(){ m["0"] = " " ; m["2"] = "A" ; m["22"] = "B" ; m["222"] = "C" ; m["3"] = "D" ; m["33"] = "E" ; m["333"] = "F" ; m["4"] = "G" ; m["44"] = "H" ; m["444"] = "I" ; m["5"] = "J" ; m["55"] = "K" ; m["555"] = "L" ; m["6"] = "M" ; m["66"] = "N" ; m["666"] = "O" ; m["7"] = "P" ; m["77"] = "Q" ; m["777"] = "R" ; m["7777"] = "S" ; m["8"] = "T" ; m["88"] = "U" ; m["888"] = "V" ; m["9"] = "W" ; m["99"] = "X" ; m["999"] = "Y" ; m["9999"] = "Z" ; m[" "] = "0" ; m["A"] = "2" ; m["B"] = "22" ; m["C"] = "222" ; m["D"] = "3" ; m["E"] = "33" ; m["F"] = "333" ; m["G"] = "4" ; m["H"] = "44" ; m["I"] = "444" ; m["J"] = "5" ; m["K"] = "55" ; m["L"] = "555" ; m["M"] = "6" ; m["N"] = "66" ; m["O"] = "666" ; m["P"] = "7" ; m["Q"] = "77" ; m["R"] = "777" ; m["S"] = "7777" ; m["T"] = "8" ; m["U"] = "88" ; m["V"] = "888" ; m["W"] = "9" ; m["X"] = "99" ; m["Y"] = "999" ; m["Z"] = "9999" ; }void fun(char a[]){ it = m.find(a) ; if( it != m.end() ) cout<
second<<" "; }void fuu(char a[]){it = m.find(a) ; if( it != m.end() ) cout<
second;}int main(){char str[1000],s[10];init();int i=1,j,k,n;while( gets(str)!=NULL){k=0;if(str[0]>='0' && str[0]<='9')//判断输入的是数字还是字符{n=0; int x=strlen(str);//把接收到的字符串都转化成单个的短字符串 for(i=0; i

 

转载于:https://www.cnblogs.com/lovychen/p/3197228.html

你可能感兴趣的文章
Android事件分发机制
查看>>
shell不排序去重
查看>>
订阅号功能----音乐
查看>>
HTML-常用元素标签手册
查看>>
JS基础-DOM Event对象手册
查看>>
Centos5.9 安装 64位 Oracle12c 笔记(1)
查看>>
Oracle DBA课程系列笔记(6_2)
查看>>
mysq集群同步原理介绍
查看>>
[Maven-不忘初心,方得始终] Maven-项目管理与构建
查看>>
我的友情链接
查看>>
WakeOnLAN(WOL)测试
查看>>
你真的会解决代码合并冲突么?
查看>>
Installation Oracle11gR2 RAC---创建ASM磁盘组
查看>>
nginx全局变量
查看>>
Android Studio Gradle 版本问题
查看>>
五周第五次课(3月9日)
查看>>
AD从windows 2003升级到windows 2008
查看>>
System.exit(0)和System.exit(1)区别
查看>>
脚本中如何跳出当前循环??
查看>>
lsyncd 代替inotify+rsync 配置
查看>>