Sha256: 134400280b646c13209dca5c4591f9f83ba41b9c58dafd1c81f90f834675ad8a

Contents?: true

Size: 460 Bytes

Versions: 56

Compression:

Stored size: 460 Bytes

Contents

package cryptosquare

import (
	"math"
	"strings"
)

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

56 entries across 56 versions & 1 rubygems

Version Path
trackler-2.2.1.113 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.111 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.110 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.109 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.108 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.107 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.106 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.105 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.104 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.103 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.102 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.101 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.100 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.99 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.98 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.97 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.96 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.95 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.94 tracks/go/exercises/crypto-square/example.go
trackler-2.2.1.93 tracks/go/exercises/crypto-square/example.go