Sha256: 6375fa8ee04eb0babd746ea8c55daf07d1a2c2201627bbad78da2b517fc2b178

Contents?: true

Size: 1.32 KB

Versions: 113

Compression:

Stored size: 1.32 KB

Contents

import Foundation

struct Atbash {

    private static func stripWhiteSpaceAndPunctuations(_ input: String) -> String {
        var returnString = ""
        input.characters.forEach {
            if !" ,.".contains(String($0)) {
                returnString.append($0)
            }
        }

        return returnString
    }

    static let cipherDictApply: [Character: Character] = ["a": "z", "b": "y", "c": "x", "d": "w", "e": "v", "f": "u", "g": "t", "h": "s", "i": "r", "j": "q", "k": "p", "l": "o", "m": "n", "n": "m", "o": "l", "p": "k", "q": "j", "r": "i", "s": "h", "t": "g", "u": "f", "v": "e", "w": "d", "x": "c", "y": "b", "z": "a"]

    static func encode( _ valueIn: String) -> String {
        let value = stripWhiteSpaceAndPunctuations(valueIn.lowercased()  )

        var text2return = ""

        for each in value.characters {
            text2return.append(cipherDictApply[each] ?? each )
        }
        return insertSpace5th(text2return)
    }

    static func insertSpace5th(_ value: String) -> String {
        var tempCounter = 0
        var tempString: String = ""
        for each in value.characters {
            if tempCounter % 5 == 0 && tempCounter != 0 {
                tempString += " \(each)"
            } else { tempString += "\(each)" }
            tempCounter += 1
        }
        return tempString
    }

}

Version data entries

113 entries across 113 versions & 1 rubygems

Version Path
trackler-2.2.1.175 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.174 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.173 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.172 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.171 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.170 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.169 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.167 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.166 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.165 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.164 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.163 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.162 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.161 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.160 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.159 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.158 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.157 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.156 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift
trackler-2.2.1.155 tracks/swift/exercises/atbash-cipher/Sources/AtbashExample.swift