解題思路: 我非常了解C++和PYTHON比較適合應試,我只是剛好發現C原始碼效率高占用空間少,考試當然還是要用套件配合多的來寫比較省時間。匯入函式庫
#include <stdio.h>#include <stdlib.h>, 開始位置在(m-1,0)。將方位寫清楚dr[6]={-1,0,1,1,0,-1}, dc[6]={0,1,1,0,-1,-1},要仔細檢查,避免沒寫好,以及邊界要設定if (nr>=0 && nr<m && nc>=0 && nc<n) 。使用陣列紀錄有出線的字母int cnt[128]={0};for ( i=0; i<k; i++) cnt[p[i]] = 1;。以下提供C原始碼,事實上直接放C++檢測也會過:
#include <stdio.h>
#include <stdlib.h>
int main() {
int m,n,k,i,d;
char b [21][21];
scanf("%d%d%d", &m, &n, &k);
for (i=0; i<m; i++) {
scanf("%s",b [i]);}
int r = m-1, c = 0, nr,nc;
int dr[6]={-1,0,1,1,0,-1}, dc[6]={0,1,1,0,-1,-1};
char p[101];
for (int i=0;i<k;i++) {
scanf("%d", &d);
nr = r+dr[d]; nc = c+dc[d];
if (nr>=0 && nr<m && nc>=0 && nc<n) {r = nr; c = nc;}
p[i] = b[r][c];}
p[k]='\0';
int cnt[128]={0};
for ( i=0; i<k; i++) cnt[p[i]] = 1;
int num = 0;
for ( i=0; i<128; i++)
num += cnt[i];
printf("%s\n%d\n",p, num);
return 0;
}