How to check if two halves of a number are equal in Swift

1 Answer

0 votes
import Foundation

func halvesEqual(_ n: Int) -> Bool {
    let s = String(n)
    let len = s.count

    // Cannot split evenly
    if len % 2 != 0 {
        return false
    }

    let half = len / 2
    let midIndex = s.index(s.startIndex, offsetBy: half)

    let left = s[s.startIndex..<midIndex]
    let right = s[midIndex..<s.endIndex]

    return left == right
}

func main() {
    let testNumbers = [1212, 123123, 45454545, 123, 1213]

    for n in testNumbers {
        print("\(n) -> \(halvesEqual(n) ? "equal halves" : "not equal")")
    }
}

main()



/*
run:

1212 -> equal halves
123123 -> equal halves
45454545 -> equal halves
123 -> not equal
1213 -> not equal

*/

 



answered Dec 22, 2025 by avibootz
...