题解 | 手机键盘
#include<iostream> #include<string> using namespace std; int main(){ int key[26] = {1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4}; string str; while(cin >> str){ int count = key[str[0]-'a']; for(int i = 1; i < str.size(); i ++){ count += key[str[i]-'a']; if(key[str[i]-'a']-key[str[i-1]-'a'] == str[i]-str[i-1]) count+=2; } cout << count << endl; } return 0; }
这是最简单的模拟方法,直接根据范围去找,找到之后加数字即可