题解 | 手机键盘

#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;
}

这是最简单的模拟方法,直接根据范围去找,找到之后加数字即可

全部评论

相关推荐

收到了小米的实习offer,犹豫是否要去。。。
认真搞学习:雷总还当过首富呢,公司不算大厂算独角兽吗
点赞 评论 收藏
分享
那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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