Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "bufio"
  5. "fmt"
  6. "io"
  7. "os"
  8. "strconv"
  9. "strings"
  10. )
  11.  
  12. // Complete the caesarCipher function below.
  13. func caesarCipher(s string, k int32) string {
  14. var ret string
  15. for _, c := range s {
  16. switch {
  17. case 'a' <= c && c <= 'z':
  18. ret += string('a' + ((c - 'a' + k) % 26))
  19. case 'A' <= c && c <= 'Z':
  20. ret += string('A' + ((c - 'A' + k) % 26))
  21. default:
  22. ret += string(c)
  23. }
  24. }
  25. return ret
  26. }
  27.  
  28. func main() {
  29. reader := bufio.NewReaderSize(os.Stdin, 1024 * 1024)
  30.  
  31. stdout, err := os.Create(os.Getenv("OUTPUT_PATH"))
  32. checkError(err)
  33.  
  34. defer stdout.Close()
  35.  
  36. writer := bufio.NewWriterSize(stdout, 1024 * 1024)
  37.  
  38. nTemp, err := strconv.ParseInt(readLine(reader), 10, 64)
  39. checkError(err)
  40. n := int32(nTemp)
  41. _ = n
  42. s := readLine(reader)
  43.  
  44. kTemp, err := strconv.ParseInt(readLine(reader), 10, 64)
  45. checkError(err)
  46. k := int32(kTemp)
  47.  
  48. result := caesarCipher(s, k)
  49.  
  50. fmt.Fprintf(writer, "%s\n", result)
  51.  
  52. writer.Flush()
  53. }
  54.  
  55. func readLine(reader *bufio.Reader) string {
  56. str, _, err := reader.ReadLine()
  57. if err == io.EOF {
  58. return ""
  59. }
  60.  
  61. return strings.TrimRight(string(str), "\r\n")
  62. }
  63.  
  64. func checkError(err error) {
  65. if err != nil {
  66. panic(err)
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement