有大佬可以看下错在哪里吗,0分,本地跑例子没什么问题。
查看原帖
有大佬可以看下错在哪里吗,0分,本地跑例子没什么问题。
828487
ltt_lnn楼主2022/10/11 20:22

package main

import "fmt"

func main() { n, m := 0, 0 fmt.Scanf("%d", &n) fmt.Scanf("%d", &m) bys := make([][]byte, n) for i := 0; i < n; i++ { bys[i] = make([]byte, m) } fmt.Scanln() for i := 0; i < n; i++ { for j := 0; j < m; j++ { fmt.Scanf("%c", &bys[i][j]) } fmt.Scanln() }

idx := [][]int{{-1, -1}, {-1, 0}, {0, -1}, {1, -1}, {-1, 1}, {1, 1}, {1, 0}, {0, 1}}

check := func(i, j int) bool {
	if i >= 0 && i < n && j >= 0 && j < m {
		return true
	}
	return false
}

cnt := func(i, j int) int {
	sum := 0
	for _, v := range idx {
		l, r := v[0]+i, v[1]+j
		if check(l, r) && bys[l][r] == '*' {
			sum++
		}
	}
	return sum
}

for i := 0; i < n; i++ {
	for j := 0; j < m; j++ {
		if bys[i][j] == '?' {
			bys[i][j] = byte(cnt(i, j) + '0')
		}
	}
}

for i := 0; i < n; i++ {
	for j := 0; j < m; j++ {
		fmt.Printf("%c", bys[i][j])
	}
	fmt.Println()
}

}

2022/10/11 20:22
加载中...