zoukankan      html  css  js  c++  java
  • 1079.手机键盘

    题目描述:
    按照手机键盘输入字母的方式,计算所花费的时间

    如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。

    如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下

    如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。

    现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。

    现在给出一串字符,需要计算出它所需要花费的时间。
    输入:
    一个长度不大于100的字符串,其中只有手机按键上有的小写字母
    输出:
    输入可能包括多组数据,对于每组数据,输出按出Input所给字符串所需要的时间
    样例输入:

    bob
    www
    样例输出:

     7
    7

    #include<cstring>
    #include<iostream>
    #include<map>
    using namespace std;
    
    int main(){
        string s;
        while(getline(cin,s)){
            int num=0;
            for(int i=0;i<s.size();i++){
                if(s[i]=='a' || s[i]=='d' || s[i]=='g' || s[i]=='j' || s[i]=='m' || s[i]=='p' || s[i]=='t' || s[i]=='w') num++;
                else {
                if(s[i]=='b' || s[i]=='e' || s[i]=='h' || s[i]=='k' || s[i]=='n' || s[i]=='q' || s[i]=='u' || s[i]=='x')
                     num+=2;
                     else {
                         if(s[i]=='c' || s[i]=='f' || s[i]=='i' || s[i]=='l' || s[i]=='o' || s[i]=='r' || s[i]=='v' || s[i]=='y')
                         num+=3;
                         else num+=4;
                     }
            }
            }
            map<char,int> m;
            m['a']=1;
            m['b']=1;
            m['c']=1;
            m['d']=2;
            m['e']=2;
            m['f']=2;
            m['g']=3;
            m['h']=3;
            m['i']=3;
            m['j']=4;
            m['k']=4;
            m['l']=4;
            m['m']=5;
            m['n']=5;
            m['o']=5;
            m['p']=6;
            m['q']=6;
            m['r']=6;
            m['s']=6;
            m['t']=7;
            m['u']=7;
            m['v']=7;
            m['w']=8;
            m['x']=8;
            m['y']=8;
            m['z']=8;
            for(int i=0;i<s.size()-1;i++){
                if(m[s[i+1]]==m[s[i]]) num+=2;
            }
            cout<<num<<endl;
        }
        return 0;
    }
  • 相关阅读:
    UGUI Toggle控件
    UGUI Scrollbar控件
    利用头插法——创建、遍历链表
    函数指针
    opencv 图像通道操作
    三维点云匹配算法
    点与三角形位置关系
    室内场景mesh 的自动分块---用于加载显示,参数化等
    eigen 四元数
    string 、char*、const char *
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9736451.html
Copyright © 2011-2022 走看看