Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bufio"
- "fmt"
- "io"
- "os"
- "strconv"
- "strings"
- )
- // Complete the caesarCipher function below.
- func caesarCipher(s string, k int32) string {
- var ret string
- for _, c := range s {
- switch {
- case 'a' <= c && c <= 'z':
- ret += string('a' + ((c - 'a' + k) % 26))
- case 'A' <= c && c <= 'Z':
- ret += string('A' + ((c - 'A' + k) % 26))
- default:
- ret += string(c)
- }
- }
- return ret
- }
- func main() {
- reader := bufio.NewReaderSize(os.Stdin, 1024 * 1024)
- stdout, err := os.Create(os.Getenv("OUTPUT_PATH"))
- checkError(err)
- defer stdout.Close()
- writer := bufio.NewWriterSize(stdout, 1024 * 1024)
- nTemp, err := strconv.ParseInt(readLine(reader), 10, 64)
- checkError(err)
- n := int32(nTemp)
- _ = n
- s := readLine(reader)
- kTemp, err := strconv.ParseInt(readLine(reader), 10, 64)
- checkError(err)
- k := int32(kTemp)
- result := caesarCipher(s, k)
- fmt.Fprintf(writer, "%s\n", result)
- writer.Flush()
- }
- func readLine(reader *bufio.Reader) string {
- str, _, err := reader.ReadLine()
- if err == io.EOF {
- return ""
- }
- return strings.TrimRight(string(str), "\r\n")
- }
- func checkError(err error) {
- if err != nil {
- panic(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement