题解 | #手机键盘#

手机键盘

https://www.nowcoder.com/practice/20082c12f1ec43b29cd27c805cd476cd

#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
/*
    abc def
ghi jkl mno
pqrs tuv wxyz
*/

int main() {
    map<char, int> time = {
        {'a', 1}, {'b', 2}, {'c', 3},
        {'d', 1}, {'e', 2}, {'f', 3},
        {'g', 1}, {'h', 2}, {'i', 3},
        {'j', 1}, {'k', 2}, {'l', 3},
        {'m', 1}, {'n', 2}, {'o', 3},
        {'p', 1}, {'q', 2}, {'r', 3}, {'s', 4},
        {'t', 1}, {'u', 2}, {'v', 3},
        {'w', 1}, {'x', 2}, {'y', 3}, {'z', 4},
    };
    map<char, int> keymap = {
        {'a', 2}, {'b', 2}, {'c', 2},
        {'d', 3}, {'e', 3}, {'f', 3},
        {'g', 4}, {'h', 4}, {'i', 4},
        {'j', 5}, {'k', 5}, {'l', 5},
        {'m', 6}, {'n', 6}, {'o', 6},
        {'p', 7}, {'q', 7}, {'r', 7}, {'s', 7},
        {'t', 8}, {'u', 8}, {'v', 8},
        {'w', 9}, {'x', 9}, {'y', 9}, {'z', 9},
    };
    char str[100];
    while(scanf("%s",str)!=EOF){
        int lastInput=1;
        int sum=0;
        for(int i=0;str[i]!='\0';i++){
            if(lastInput==keymap[str[i]]){sum+=2;}
            sum+=time[str[i]];
            lastInput=keymap[str[i]];
        }
   
    printf("%d\n",sum); }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

07-11 10:56
门头沟学院 Java
码客明:大胆的说自己能实习6个月就行
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 12:10
点赞 评论 收藏
分享
05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务