Вы должны проверить, имеют ли все «внутренние» массивы ту же длину, что и «внешний» массив. Это удобно сделать с помощью метода allSatisfy
:
func isSquareMatrix<T>(_ m: [[T]]) -> Bool {
let dim = m.count
return m.allSatisfy { $0.count == dim }
}
Пример:
print(isSquareMatrix([[1, 2, 3], [3, 5, 6], [7, 8, 9]])) // true
print(isSquareMatrix([[1, 2, 3], [4, 5], [6, 7, 8, 9]])) // false
Вышеуказанная функция универсальная , поэтому ее можно использовать с произвольными типами элементов, а не только с [[Int]]
:
print(isSquareMatrix([[1.0, 2.0], [3.0, 4.0]])) // true