常见面试算法题-九宫格按键输入法

■ 题目描述

九宫格按键输入,判断输出,有英文和数字两个模式,默认是数字模式,数字模式直接输出数字,英文模式连续按同一个按键会依次出现这个按键上的字母,如果输入”/”或者其他字符,则循环中断。

要求输入一串按键,输出屏幕显示。


输入描述:

输入范围为数字 0~9 和字符’#’、’/’,输出屏幕显示,例如,

在数字模式下,输入 1234,显示 1234

在英文模式下,输入 1234,显示,adg

输出描述:

  1. #用于切换模式,默认是数字模式,执行#后切换为英文模式;
  2. /表示延迟,例如在英文模式下,输入 22/222,显示为 bc;
  3. 英文模式下,多次按同一键,例如输入 22222,显示为 b;

示例 1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

123#222235/56

输出

123adjjm

 以下代码为本人原创,可以供大家参考,若有不足之处,感谢指出!!!!

word = input()
dic = {'0': [''], '1': [',', '.'], '2': ['a', 'b', 'c'],
       '3': ['d', 'e', 'f'], '4': ['g', 'h', 'i'],
       '5': ['j', 'k', 'l'], '6': ['m', 'n', 'o'],
       '7': ['p', 'q', 'r', 's'],
       '8': ['t', 'u', 'v'],
       '9': ['w', 'x', 'y']}
model = 'digit'
ans = ''
nums = 0
a = ''
for i in word:
    if model == 'digit':
        if i == '#':
            model = 'str'
            continue
        ans += i
    if model == 'str':
        if i == '#':
            model = 'digit'
            if a:
                b = len(dic[a[0]])
                ans += dic[a[0]][(nums - 1) % b]
            a = ''
            continue
        else:
            if nums == 0 and i != '/':
                nums += 1
                a = [i, nums]
                continue
            if nums == 0 and i == '/':
                continue
            if i == a[0]:
                nums += 1
                a[1] += +1
                continue
            if i != a[0] and i != '/':
                b = len(dic[a[0]])
                ans += dic[a[0]][(nums - 1) % b]
                nums = 1
                a = [i, nums]
            if i == '/':
                b = len(dic[a[0]])
                ans += dic[a[0]][(nums-1) % b]
                nums = 0
                continue
if a:
    b = len(dic[a[0]])
    ans += dic[a[0]][(nums-1) % b]
print(ans)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/551326.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Transformer with Transfer CNN for Remote-Sensing-Image Object Detection

遥感图像(RSI)中的目标检测始终是遥感界一个充满活力的研究主题。 最近,基于深度卷积神经网络 (CNN) 的方法,包括基于区域 CNN 和基于 You-Only-Look-Once 的方法,已成为 RSI 目标检测的事实上的标准。 CNN 擅长局部特…

最佳实践:高并发之扩容思路

系统在业务平峰期间运行稳定、性能良好,但在大流量时就会出现各种各样的问题,例如接口时延变大,CPU占用率升高、频繁发生Full GC、代码中出现死锁等等。大流量意味着高并发,高并发也是很多开发人员所期望拥有的经验,一…

SSRF题目进阶+SSRF正则绕过+进制绕过SSRF限制

[题目信息]: 题目名称题目难度SSRF题目进阶3 [题目考点]: SSRF绕过[Flag格式]: SangFor{h3bvbopR6L2EQOXv}[环境部署]: docker-compose.yml文件或者docker tar原始文件。 docker-compose up -d[题目writeup]: 1、实验主页 …

MySQL的索引类型有哪些

MySQL的索引类型有哪些 MySQL数据库系统中的索引是用来加快搜索和检索数据库记录的数据结构。这些索引类似于书籍的目录,帮助MySQL快速定位数据表中的数据,而无需逐行扫描整个表。 索引解释 主键索引(PRIMARY KEY) 在MySQL中&…

2024五一杯数学建模C题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

Linux中用户通过系统调用实现硬件驱动全流程

驱动全流程: 以基于设备树、Pinctrl、gpio子系统,打开一个字符设备为例: 1、通过系统调用open进入内核 当我们在用户空间调用open之后,应用程序会使用系统调用指令(在上图中可看到,ARM架构中软中断汇编指…

【Qt】:网络编程

网络编程 一.UDP Socket1.回显服务器2.回显客户端 二.TCP Socket1.回显服务器2.回显客户端 三.HTTP Client1.常见的APL2.给服务器发送⼀个GET请求. 四.音视频 前置知识:网络。如果不了解,可以看我的博客网络部分。 在进⾏⽹络编程之前,需要在项⽬中的 .p…

使用两台主机实现博客的搭建

1.运行环境 这里的主机IP是自己虚拟器的IP。 主机主机名系统服务192.168.179.128Server-WebLinuxWeb192.168.179.129Server-NFSDNSLinuxNFS/DNS 2.基础配置 1.配置主机名,静态IP地址 2.开启防火墙并配置 3.部分开启SElinux并配置 4.服务器之间使用同ntp.aliyun.com…

设计模式之状态模式(下)

3)共享状态 1.概述 在某些情况下,多个环境对象可能需要共享同一个状态,如果希望在系统中实现多个环境对象共享一个或多个状态对象,那么需要将这些状态对象定义为环境类的静态成员对象。 2.案例 背景:要求两个开关对…

本地做好准备上传到Git分支,发现git上已经更新了,上传到dev分支

git add . git commit -m 备注 git pull --rebase origin dev 拉取dev上的代码合并到本地 git push -u origin dev推到远程dev上(注意着可能不是最后一步,先看完) 如果报错,意思是本地没有dev分支,没办法上传到git上…

获取钉钉群的 chatId

1、地址 获取地址 在代码发钉钉的地方找到 corpId。 填上后,会出现一个二维码,使用钉钉扫描二维码,就会出现你所在的群,点击,就能获取到 chatId

数据结构——单链表(C语言版)

文章目录 一、链表的概念及结构二、单链表的实现SList.h链表的打印申请新的结点链表的尾插链表的头插链表的尾删链表的头删链表的查找在指定位置之前插入数据在指定位置之后插入数据删除pos结点删除pos之后的结点销毁链表 三、完整源代码SList.hSList.ctest.c 一、链表的概念及…

自定义鼠标软件 SteerMouse最新完整激活版

SteerMouse是一款实用的Mac OS X系统辅助工具,可以帮助用户自定义鼠标和触控板的设置,提高使用效率。它提供了多种功能,如自定义按钮、滚轮和光标速度,以及调整灵敏度等,使用户能够根据自己的需求和习惯进行优化。 Ste…

振弦式裂缝计安装指南:使用灌浆锚头安装法

振弦式表面裂缝计作为一种精密的测量设备,在土木工程、建筑结构监测等领域发挥着重要的作用。为了确保裂缝计能够准确、稳定地工作,其安装过程尤为重要。本文将详细介绍振弦式表面裂缝计灌浆锚头的安装步骤,帮助大家更好地完成安装工作。 步骤…

启明智显技术分享|HMI工业级芯片Model3(简称M3芯片)PSRAM使用指南及PSRAM溢出如何进行问题定位

Model3芯片简介: 启明智显发布的HMI工业级芯片Model3(简称M3芯片)是一款高性能的显示交互和智能控制 MCU,采用国产自主高算力 RISC-V 内核,内置片上 1MB 大容量 SRAM 以及 64Mb PSRAM,并提供丰富的互联外设…

李彦宏官宣第二届“文心杯”创业大赛,最高投资奖励翻5倍达5000万

4月16日,百度创始人、董事长兼首席执行官李彦宏在Create 2024百度AI开发者大会上宣布,第二届“文心杯”创业大赛正式启动,参赛选手有机会获得最高5000万人民币投资。 李彦宏在Create 2024百度AI开发者大会的演讲主题是“人人都是开发者”&…

伦敦站:电子科技大学2024年全球人才推介会诚邀学者报名参会!

2024年4月24日,电子科技大学访英代表团一行将在伦敦举办人才推介交流会。届时,电子科技大学嘉宾将现场推介学校办学和人才队伍建设情况,宣讲学校人才引进政策,并与参会学者进行互动交流与洽谈。现热忱欢迎伦敦及周边地区学者报名参…

怎么申请OV证书

不同于DV SSL证书申请只需要验证域名所有权,申请OV SSL证书除了会验证域名之外,同时还会对申请企业的组织信息进行验证。本篇就给大家介绍一下如何申请OV SSL证书。 目前DV SSL证书和OV SSL证书的区别还是比较大的,DV和OV的区别:…

红帽认证考试流程指导

参加红帽认证考试涉及以下三个流程帐号和证件的准备 考试信息的填写 证书关联与下载 帐号和证件的准备RHN 帐号注册 在参加红帽官方培训和认证考试前需要您提前注册好红帽帐号(RHN) 访问 此页面 ,随后点击 Register for a Red Hat account 链接进行注册 注册时以下条…

BoostCompass( 查找功能实现 )

阅读导航 一、查找功能基本思路二、详细代码三、代码介绍四、运行结果 一、查找功能基本思路 通过实现一个基于倒排索引的搜索引擎,来提供高效、准确的搜索服务。其核心在于快速准确地从大量文档中检索出与用户查询关键词相关的文档,并按照相关性对结果…