题解 | #手机键盘#
手机键盘
https://www.nowcoder.com/practice/20082c12f1ec43b29cd27c805cd476cd
#include<stdio.h>
#include<map>
#include<string.h>
using namespace std;
int main() {
map<char, int> inputTime = {
{'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[101];
while (scanf("%s", str) != EOF) {
int time = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
time += inputTime[str[i]];
if (i != 0 && keyMap[str[i]] == keyMap[str[i - 1]])
time += 2;
}
printf("%d\n", time);
}
return 0;
}
查看15道真题和解析