Манипуляции с массивами и переупорядочение в Swift - PullRequest
0 голосов
/ 19 октября 2018

Учитывая массив (например, [1, 0, 2, 0, 0, 3, 4]), реализуйте методы, которые перемещают ненулевые элементы в начало массива (остальные элементы нене имеет значения)

Я реализовал следующим образом, это работает, но мне интересно, более короткий способ сделать это?

import Foundation

var inputArray = [ 1, 0, 2, 0, 0, 3, 4 ]

func remoZeros (inputArray :[Int]) -> [Int]
{
  var nonZeroArray = [Int]()
  var zeroArray = [Int]()

  for item in inputArray
  {
    if item != 0
    {
      nonZeroArray.append(item)
    }
    else
    {
      zeroArray.append(item)
    }
  }

return nonZeroArray + zeroArray

}

var result = remoZeros (inputArray: inputArray)

1 Ответ

0 голосов
/ 19 октября 2018

Можно попробовать

var inputArray = [ 1, 0, 2, 0, 0, 3, 4 ]

func remoZeros (inputArray :[Int]) -> [Int] {

   return inputArray.filter{$0 != 0} + inputArray.filter{$0 == 0}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...