chemtech
@chemtech
Линуксойд, DevOps

Как fmt.Scan читает строки и разделяет элементы на int в Golang?

Прохожу тест Diagonal Difference in Go
Моя функция прошла только 2 или 3 теста
spoiler

func diagonalDifference(arr [][]int32) int32 {
var firstDiagonal int32 = 0
var secondDiagonal int32 = 0
for i, slice := range(arr) {
if i == 0 {
continue
}
for j,_ := range(slice) {
if i == 1 && j == 0 {
firstDiagonal = firstDiagonal + arr[i][j]
}
if i == 2 && j == 1 {
firstDiagonal = firstDiagonal + arr[i][j]
}
if i == 3 && j == 2 {
firstDiagonal = firstDiagonal + arr[i][j]
}

if i == 1 && j == 2 {
secondDiagonal = secondDiagonal + arr[i][j]
}
if i == 2 && j == 1 {
secondDiagonal = secondDiagonal + arr[i][j]
}
if i == 3 && j == 0 {
secondDiagonal = secondDiagonal + arr[i][j]
}
}
}
var result int32 = Abs(firstDiagonal - secondDiagonal)
fmt.Println(firstDiagonal)
fmt.Println(secondDiagonal)
return result

}

Нашел код https://gist.github.com/ranapu/f9a34a2d0a129259eee...
Запустил - все тесты прошли.
Запустил из консоли.
Ввожу строки
3
11 2 4
4 5 6
10 8 -12

Как fmt.Scan читает строки и разделяет элементы на int в Golang?

По идее нужно строку разделять на элементы и из них получать массив.
someString := "one two three four "
words := strings.Fields(someString)
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 1
Вот тут набор ioutil
И да, если вводятся строки, надо ее разбивать, а потом переводить в int.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы