import Foundation
func halvesSumEqual(_ n: Int) -> Bool {
let s = String(abs(n))
guard s.count % 2 == 0 else {
return false
}
let half = s.count / 2
let leftIndex = s.index(s.startIndex, offsetBy: half)
let left = s[..<leftIndex]
let right = s[leftIndex...]
func sumDigits(_ part: Substring) -> Int {
part.reduce(0) { $0 + Int(String($1))! }
}
return sumDigits(left) == sumDigits(right)
}
func main() {
let nums = [123456, 123321, 123123, 123411, 1234321, 12321]
for n in nums {
print("\(n): \(halvesSumEqual(n))")
}
}
main()
/*
run:
123456: false
123321: true
123123: true
123411: true
1234321: false
12321: false
*/