题解 | #手机键盘#

手机键盘

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

#include "iostream"
#include "string"
#include "map"
using namespace std;

// 1      || 2 abc || 3 def
// 4 ghi  || 5 jkl || 6 mno
// 7 pqrs || 8 tuv || 9 wxyz

int main() {
    map<char,int> keyGroup = {
            {'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},
    };
    map<char,int> keyInputTime = {
            {'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},
    };
    int waitTime = 2;
    string input;
    while(cin>>input){
        int count = 0;
        char lastChar = '\0';
        for(int i = 0; i < input.size() ; i++){
            if(keyGroup[input[i]]==keyGroup[lastChar]) count+=2;
            count+=keyInputTime[input[i]];
            lastChar = input[i];
        }
        cout<<count<<endl;
    }
    return 0;
}

全部评论

相关推荐

头像
10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务