33 lines
585 B
Go
33 lines
585 B
Go
|
package transpose
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
const testVersion = 1
|
||
|
|
||
|
func Transpose(inp []string) []string {
|
||
|
// find the longest length string in the slice
|
||
|
lng := 0
|
||
|
for i := range inp {
|
||
|
if len(inp[i]) > lng {
|
||
|
lng = len(inp[i])
|
||
|
}
|
||
|
}
|
||
|
ret := make([]string, lng, lng)
|
||
|
for i := range inp {
|
||
|
for j := 0; j < lng; j++ {
|
||
|
if len(inp[i]) > j {
|
||
|
ret[j] = ret[j] + string(inp[i][j])
|
||
|
} else {
|
||
|
ret[j] = ret[j] + " "
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if len(ret) > 0 {
|
||
|
// Trim the spaces off of the end of the last line
|
||
|
ret[len(ret)-1] = strings.TrimRight(ret[len(ret)-1], " ")
|
||
|
}
|
||
|
return ret
|
||
|
}
|