纯水题,最上面一行去掉,最下面一行去掉,在剩下的(n - 1) * (n - 1)的矩形里面,长度为一的进制数的出现次数减一就是代表几,比如样例吧:
5 + L K V E L L K V E K K V E KL V V E KL KK E E KL KK KV |
上面,红色的L出现了一次,就代表0,K出现两次就代表1,两位数都不考虑,就这样的:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char tmp[1000];
char str[9];
int used[9];
int main(int argc, char **argv)
{
int i, j, k;
int n;
char c;
scanf("%d\n+", &n);
n--;
for(i = 0; i < n; i++){
scanf(" %c", &c);
str[i] = c;
}
for(i = 0; i < n; i++){
scanf("\n%c", &c);
for(j = 0; j < n; j++){
scanf(" %s", tmp);
if(strlen(tmp) == 1){
for(k = 0; k < n; k++){
if(str[k] == tmp[0]){
used[k]++;
break;
}
}
}
}
}
for(i = 0; i < n; i++){
printf("%c=%d ", str[i], used[i] - 1);
}
printf("%d\n", n);
return 0;
}