Sha256: 3f32d9ce452f021ab12f6b4c0bdd979f0b2078596bffe8e705111bafacfbbd52

Contents?: true

Size: 483 Bytes

Versions: 274

Compression:

Stored size: 483 Bytes

Contents

package cryptosquare

import (
	"math"
	"strings"
)

const testVersion = 2

func norm(r rune) rune {
	switch {
	case r >= 'a' && r <= 'z' || r >= '0' && r <= '9':
		return r
	case r >= 'A' && r <= 'Z':
		return r + 'a' - 'A'
	}
	return -1
}

func Encode(pt string) string {
	pt = strings.Map(norm, pt)
	numCols := int(math.Ceil(math.Sqrt(float64(len(pt)))))
	cols := make([]string, numCols)
	for i, r := range pt {
		cols[i%numCols] += string(r)
	}
	return strings.Join(cols, " ")
}

Version data entries

274 entries across 274 versions & 1 rubygems

Version Path
trackler-2.2.1.56 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.55 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.54 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.53 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.52 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.51 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.50 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.49 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.48 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.47 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.46 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.45 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.44 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.43 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.42 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.41 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.40 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.39 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.38 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.37 tracks/go/exercises/crypto-square/example.go