223 lines
6.6 KiB
C++
223 lines
6.6 KiB
C++
/*
|
|
date:107/10/20
|
|
author:Chen Yi Jing
|
|
|
|
算手指按按鍵拿起來的次數,共十指
|
|
*/
|
|
#include <iostream>
|
|
#include <sstream>
|
|
using namespace std;
|
|
int main (){
|
|
int n = 0;
|
|
cin >> n;
|
|
|
|
string ss;
|
|
getline(cin, ss); //do nothing
|
|
|
|
//case by case
|
|
for (int i = 0; i < n; i++) {
|
|
string s;
|
|
int before[11] = {0};
|
|
int after[11] = {0};
|
|
int finger[11] = {0};
|
|
getline(cin, s);
|
|
// cin >> s;
|
|
if(s[0] == 1){
|
|
cout <<"qq";
|
|
}
|
|
|
|
for (int j = 0; j < s.length(); j++) {
|
|
//判斷指法
|
|
switch(s[j]) {
|
|
case 'c':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 1;
|
|
after[9] = 1;
|
|
after[10] = 1;
|
|
break;
|
|
case 'd':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 1;
|
|
after[9] = 1;
|
|
after[10] = 0;
|
|
break;
|
|
case 'e':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 1;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'f':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'g':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'a':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 0;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'b':
|
|
after[1] = 0;
|
|
after[2] = 1;
|
|
after[3] = 0;
|
|
after[4] = 0;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'C':
|
|
after[1] = 0;
|
|
after[2] = 0;
|
|
after[3] = 1;
|
|
after[4] = 0;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'D':
|
|
after[1] = 1;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 1;
|
|
after[9] = 1;
|
|
after[10] = 0;
|
|
break;
|
|
case 'E':
|
|
after[1] = 1;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 1;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'F':
|
|
after[1] = 1;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 1;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'G':
|
|
after[1] = 1;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 1;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'A':
|
|
after[1] = 1;
|
|
after[2] = 1;
|
|
after[3] = 1;
|
|
after[4] = 0;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
case 'B':
|
|
after[1] = 1;
|
|
after[2] = 1;
|
|
after[3] = 0;
|
|
after[4] = 0;
|
|
after[5] = 0;
|
|
after[6] = 0;
|
|
after[7] = 0;
|
|
after[8] = 0;
|
|
after[9] = 0;
|
|
after[10] = 0;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
//判斷是否要加按下去的次數,還有將 before 更新
|
|
for (int k = 1; k < 11; k++) {
|
|
if (before[k] == 0 && after[k] == 1) {
|
|
finger[k]++;
|
|
before[k] = 1;
|
|
}
|
|
else if (before[k] == 1 && after[k] == 0) {
|
|
before[k] = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int k = 1; k < 10; k++) {
|
|
cout << finger[k] << " ";
|
|
}
|
|
cout << finger[10];
|
|
cout << endl;
|
|
}
|
|
|
|
} |