牛客网考研机试题集合:手机键盘

记录每个字母在键盘的位置以及要按的次数


#include<bits/stdc++.h>

using namespace std;
const int N=40002;
const int K=1010;

int main() {
string s;
map<char,int> m1,m2;
char c;
c='a';m1[c]=1;m2[c]=1;
c='b';m1[c]=1;m2[c]=2;
c='c';m1[c]=1;m2[c]=3;
c='d';m1[c]=2;m2[c]=1;
c='e';m1[c]=2;m2[c]=2;
c='f';m1[c]=2;m2[c]=3;
c='g';m1[c]=3;m2[c]=1;
c='h';m1[c]=3;m2[c]=2;
c='i';m1[c]=3;m2[c]=3;
c='j';m1[c]=4;m2[c]=1;
c='k';m1[c]=4;m2[c]=2;
c='l';m1[c]=4;m2[c]=3;
c='m';m1[c]=5;m2[c]=1;
c='n';m1[c]=5;m2[c]=2;
c='o';m1[c]=5;m2[c]=3;
c='p';m1[c]=6;m2[c]=1;
c='q';m1[c]=6;m2[c]=2;
c='r';m1[c]=6;m2[c]=3;
c='s';m1[c]=6;m2[c]=4;
c='t';m1[c]=7;m2[c]=1;
c='u';m1[c]=7;m2[c]=2;
c='v';m1[c]=7;m2[c]=3;
c='w';m1[c]=8;m2[c]=1;
c='x';m1[c]=8;m2[c]=2;
c='y';m1[c]=8;m2[c]=3;
c='z';m1[c]=8;m2[c]=4;

while(cin>>s){
	int len=s.length();
	int sum=0;
	sum+=m2[s[0]];
	for(int i=1;i<len;i++){
		if(m1[s[i]]!=m1[s[i-1]]){
			sum+=m2[s[i]];
		}else{
			sum+=2+m2[s[i]];
		}
	}
	cout<<sum<<endl;
}


	return 0;
}
发布了53 篇原创文章 · 获赞 3 · 访问量 3488

猜你喜欢

转载自blog.csdn.net/sinat_38292108/article/details/104712813