Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,959 questions

51,901 answers

573 users

How to shift letters in a string x times by giving a slice of shifts in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

/*
 string = "aaa"
 After shifting the first 1 letter by 1 = "baa"
 After shifting the first 2 letters by 2 = "dca"
 After shifting the first 3 letters by 3 = "gfd"
 result = "gfd"
*/

func shiftLetters(str string, shifts []int) string {
    size := len(shifts)
    // Convert string to rune slice for mutability
    arr := []rune(str)

    for i := size - 1; i >= 0; i-- {
        if i + 1 < size {
            shifts[i] += shifts[i+1]
        }

        shifts[i] = shifts[i] % 26

        asciiCode := int(str[i]) - int('a')
        asciiCode = asciiCode + shifts[i]

        if asciiCode > 25 {
            asciiCode = asciiCode - 26
        }

        arr[i] = rune(int('a') + asciiCode)
    }

    return string(arr)
}

func main() {
    str := "aaa"
    shifts := []int{1, 2, 3}

    str = shiftLetters(str, shifts)

    fmt.Println(str)
}



/*
run:

gfd

*/

 



answered Dec 4, 2025 by avibootz

Related questions

...