//字符串测试 #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++风格字符串混合做的