这题出的只能说是无语。思路还是很简单的。
只要用一个的tag标记上次是哪个按键即可,然后tag和现在对比,要是相同就多加2。
#include<iostream>
#include <map>
using namespace std;
int main(){
map<char,int>Map={
{'a',10},{'b',20},{'c',30},
{'d',11},{'e',21},{'f',31},
{'g',12},{'h',22},{'i',32},
{'j',13},{'k',23},{'l',33},
{'m',14},{'n',24},{'o',34},
{'p',15},{'q',25},{'r',35},{'s',45},
{'t',16},{'u',26},{'v',36},
{'w',17},{'x',27},{'y',37},{'z',47}
};
char c[101]={'\0'};
while( cin >> c ) {
int tag = -1 ;
int i = 0 ;
int sum = 0 ;
while( c[i] != '\0' ) {
int x = Map[ c[i] ] / 10;
int y = Map[ c[i] ] % 10;
sum += x;
if (tag == y) {
sum += 2;
}
tag=y;
i++;
}
cout << sum <<'\n' ;
}
return 0;
}
结果如下: