之前做过九宫格输入法的题目

搜了一下网上的解法没找到高效的解法

写一个相对高效的解法

先放上原题

假设有九宫格输入法键盘布局如下:[ 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  

首先直接以数字读入肯定会爆 题中给出了总长度不超过500

一种很直接的思路是每次读一个字符,遇到空格做一个统计,然后根据统计的个数输出结果。

但既然每组输入都是相同的数字,那用字符串处理起来可能会更方便

这里放上我的算法

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4
 5 const string keys[10] = {
 6     "0 ",
 7     "1,.?!","2ABC","3DEF",
 8     "4GHI","5JKL","6MNO",
 9     "7PQRS","8TUV","9WXYZ",
10 };
11
12 int main() {
13     string str;
14     while (cin >> str) {        // 从流中读取输入信息
15         string key = keys[str[0] - '0'];    // 按键
16         int counts = (str.size() - 1) % key.size();    // 按下次数
17         cout << key[counts];    // 输出
18     }
19     return 0;
20 }

可以说是钻了题目的空子。

转载于:https://www.cnblogs.com/bugcreator/p/11178543.html

九宫格输入法-字符串处理方法相关推荐

  1. 7-9 九宫格输入法

    7-9 九宫格输入法 (15 分) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ ...

  2. 苹果11如何设置9宫格_iPhone 11怎么设置九宫格输入法?iPhone11九宫格输入法设置教程...

    现在手机已经是十分普遍了,几乎是人手一个.我们使用手机时要与他人通信,就会使用到输入法输入文字.手机上大家用得最多的输入法一般有二种,一种是全键盘输入法,另一种是九宫格输入法.在这里简单介绍下如何在苹 ...

  3. 苹果手机怎么设置九宫格输入法?快速切换九键输入法,轻松学会

    苹果手机与安卓手机有很大的不同,从安卓手机切换成苹果手机,不少的小伙伴表示不是很适应.有些习惯了使用九宫格输入法的小伙伴发现自己的苹果手机是26键输入法,不知道苹果手机怎么设置九宫格输入法.别担心,下 ...

  4. 九宫格输入法(最易懂版本)

    P2 九宫格输入法 (15point(s)) 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ...

  5. 7-13 九宫格输入法 (15 分)

    假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ][ 8TUV ] [ 9WXYZ ] ...

  6. 7-33 九宫格输入法(15 分)

    假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5JKL ] [ 6MNO ][ 7PQRS ] [ 8TUV ] [ 9WXYZ ][ ...

  7. 九宫格输入法及strlen()函数

    九宫格输入法及strlen函数 九宫格输入法 strlen函数 九宫格输入法 题目: 假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ][ 4GHI ] [ 5J ...

  8. 67行代码实现:模拟手机九宫格输入法

    go日常练习,不定期提供golang小项目作为练手.望客官笑纳的同时也提出宝贵意见,纯手工码字不易,您的支持就是我创作的最大动力. 对于每天手机不离手的我们来说,输入法太熟悉了,今天我们就用golan ...

  9. 关于九宫格输入法的一道简单题

    题目如下: 手机的九宫格输入法中,输入数字的键位是可以和字母键位对应的.如"2"对应"ABC","9"对应"WXYZ", ...

最新文章

  1. CPU 周期信号、节拍周期信号、节拍脉冲信号三者之间的关系是什么?
  2. 第六章:面向对象(下)
  3. mingw msys 编译 libzip
  4. 《系统集成项目管理工程师》必背100个知识点-72配置管理的主要活动
  5. 使用 rose 将 c++代码转换为 uml 类图
  6. kali的软件包安装源配置
  7. python数据挖掘学习笔记】十三.WordCloud词云配置过程及词频分析
  8. redis集群搭建管理入门
  9. 如何让你得声音洪亮结实有磁性
  10. 适合小白的 Asyncio 教程!
  11. 潍坊学院计算机系宿舍,关于表彰潍坊学院第十届大学生宿舍文化节先进集体和先进个人的决定...
  12. Revit二次开发——自动标注钢筋思路(3)
  13. mac、windows 配置python国内镜像源
  14. 幻想乡三连C:狂飙突进的幻想乡
  15. npm 创建第一个Angular项目
  16. 什么是OA?(OA系统-协同网络办公)
  17. Promtail报错处理
  18. 手把手教你画AndroidK线分时图及指标
  19. linux系统搭建论坛,在Linux平台下搭建discuz论坛
  20. Unity抽奖转盘制作代码

热门文章

  1. 川大 计算机考研 英语复试,川大考研复试经验干货,学长学姐为你加油!
  2. 【rzxt】win7占用空间过大 简单的为C盘瘦身
  3. SQL CASE语法
  4. 静态心电设备的数据采集(aECG)
  5. [C++学习日记]-08-函数
  6. [C#|Unity3D学习笔记]简易五子棋源码
  7. 控制器Controller
  8. intellij idea中快速抽取方法
  9. java html ubb_简单的Html转换UBB的程序
  10. 基于百度AI开发平台实现人脸识别登陆-Springboot