Anexando string muito mais rápido que anexando caractere

eu estava fazendohttps://www.hackerrank.com/challenges/30-review-loop problema na classificação de hackers e eu estava enfrentando um problema de tempo limite que foi resolvido de maneira alternada. Eu esperava que alguém aqui pudesse me explicar por que um é mais rápido que o outro. Ou aponte-me para a documentação que explica esse fenômeno

Se você não tiver uma conta, aqui está uma descrição do problema que você alimenta no número de casos de teste e, em seguida, uma sequência cujo código é criar uma sequência com todos os caracteres nos índices ímpares e uma sequência com todos os caracteres em os índices pares. Exemplo de entrada

2
Hacker
Rank

retorna

Hce akr
Rn ak

Simples né? Aqui está o código que eu criei.

if let line = readLine(), numOftests = Int(line) {
    for iter in 0..<numOftests {
        var evenString = ""
        var oddString = ""
        var string = readLine()!
        var arrChars = [Character](string.characters)                           //1
        for idx in 0..<string.characters.count {
            if idx % 2 == 0 {
                oddString.append(arrChars[idx])                                 //1
                //oddString.append(string[string.startIndex.advancedBy(idx)])   //2 <= Times out
            }
            else {
                evenString.append(arrChars[idx])                                //1
                //evenString.append(string[string.startIndex.advancedBy(idx)])  //2 <= Times out
            }
        }
        print("\(oddString) \(evenString)")
    }
}

Originalmente eu usei o código comentado. Isso levou a um tempo limite. Resumindo, meu problema é que o uso do sistema de assinatura para uma string faz com que seja muito mais lento do que indexar uma matriz de caracteres. Isso me pegou de surpresa e, se não fosse o grupo de discussão na categoria hackers, eu não teria encontrado uma solução. Agora isso me irrita porque não sei por que isso faria diferença.

questionAnswers(1)

yourAnswerToTheQuestion