方法有点笨:
#include <iostream> #include <set> #include <string> #include <cmath> using namespace std; const int N=1005; int main(){ set<char>myset[3]; myset[0].insert('A'); myset[0].insert('P'); myset[0].insert('O'); myset[0].insert('R'); myset[1].insert('B'); myset[1].insert('M'); myset[1].insert('S'); myset[2].insert('D'); myset[2].insert('G'); myset[2].insert('J'); myset[2].insert('K'); myset[2].insert('T'); myset[2].insert('W'); int n; string a[N]; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } int last ,now; int cnt=0; last=0,now=0; for(int i=0;i<n;i++){ if(myset[0].count(a[i][0])){ now=0; cnt+=fabs(now-last); last=now; }else if(myset[1].count(a[i][0])){ now=1; cnt+=fabs(now-last); last=now; }else if(myset[2].count(a[i][0])){ now=2; cnt+=fabs(now-last); last=now; } } cout<<cnt<<endl; }