题解 | #手机键盘#

手机键盘

https://www.nowcoder.com/practice/20082c12f1ec43b29cd27c805cd476cd

//字符串测试
#include<cstdio>
#include<iostream>
#include<map>
#include<string>
using namespace std;
char a[100];
int main()
{
	string s1;
		map<char,int> ma={
	{'a',1}, 
	{'b',2},
	{'c',3},
	{'d',1},
	{'e',2},
	{'f',3},
	{'g',1},
	{'h',2},
	{'i',3},
	{'j',1},
	{'k',2},
	{'l',3},
	{'m',1},
	{'n',2},
	{'o',3},
	{'p',1},
	{'q',2},
	{'r',3},
	{'s',4},	
	{'t',1},
	{'u',2},
	{'v',3},
	{'w',1},
	{'x',2},
	{'y',3},
	{'z',4},
	};
	map<char,int> mb={
	{'a',2},{'b',2},{'c',2},
	{'d',3},{'e',3},{'f',3},
	{'g',4},{'h',4},{'i',4},
	{'j',5},{'k',5},{'l',5},
	{'m',6},{'n',6},{'o',6},
	{'p',7},{'q',7},{'r',7},{'s',7},
	{'t',8},{'u',8},{'v',8},
	{'w',9},{'x',9},{'y',9},{'z',9},
	};
	int t1=1;
	int t2=2;
	while(scanf("%s",a)!=EOF){
	s1=a;	
	int time=0;
	for(int i=0;i<s1.length();i++)
	{	
		char temp=a[i];
		char temp1=a[i+1];
		time+=(int)ma[temp];
		if(mb[temp]==mb[temp1])
		{
			time+=t2;		
		}
	}
	cout<<time;
}
	return 0;
 }

这一组是用C风格字符串和C++风格字符串混合做的

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务