题解 | #手机键盘#
手机键盘
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;
}
查看16道真题和解析