您的位置:首页 > 其它

题目1079:手机键盘

2017-04-15 15:21 302 查看


#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <stack>
#include <string>
#include <string.h>
#include <stdio.h>
#include <cmath>
#include <map>
#include <functional>
#include <set>
#include <limits.h>
#include <math.h>
#include <ctype.h>
using namespace std;
//1079
int a[]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
int b[]={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};
char ch[101];
int ans;
bool isOne(char c1,char c2)
{
    return (a[c1-'a']==a[c2-'a'])?true:false;
}
int main()
{
    while(scanf("%s",ch)!=EOF)
    {
        ans=b[ch[0]-'a'];
        for(int i=1;i<strlen(ch);i++)
        {
            if(isOne(ch[i-1],ch[i])==false)
                ans+=b[ch[i]-'a'];
            else
                ans+=b[ch[i]-'a']+2;
        }  
        printf("%d\n",ans);
    }
    return 0;
}
/**************************************************************
    Problem: 1079
    User: cust123
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:1520 kb
****************************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: