手机键盘

手机键盘

https://www.nowcoder.com/practice/20082c12f1ec43b29cd27c805cd476cd?tpId=40&&tqId=21337&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

关键就在于如何去判断相邻两个字符是否属于同一按键内,KEY:字母在字符串中本身的间距等于按键次数之差,则属于同一按键

#include<iostream>
#include <cstdio>

using namespace std;

int keyTab[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};        ////数据预处理

int main(){
    string str;
    while(cin>>str){
        int time =0;
        for(int i=0;i< str.size();i++){      //将所有的输入str一个一个输入
            time +=keyTab[str[i]-'a'];        //每次把该数组对应的提取出来,该数字就是按键的等待时间
            if(i!=0 && str[i]-str[i-1] == keyTab[str[i]-'a'] -keyTab[str[i-1]-'a'])    //判断相邻两个字符是否属于同一按键内,若在同一键内,相邻按键次数字母按键均为相同
                time +=2;        //两个字符在同一个键上,中间需要间隔时间2
        }
        printf("%d\n",time);
    }
    return 0;
}
全部评论

相关推荐

缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
昨天 13:48
门头沟学院 C++
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

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