I want something like:
var peptide = "LENQ"
peptide[2:3] -> NQ
peptide[2:4] -> NQL
peptide[2:5] -> NQLE
What is the best way in go to do it? May be there is a library function to get it or do I need to write it by myself ?
I want something like:
var peptide = "LENQ"
peptide[2:3] -> NQ
peptide[2:4] -> NQL
peptide[2:5] -> NQLE
What is the best way in go to do it? May be there is a library function to get it or do I need to write it by myself ?
For example,
package main
import (
"fmt"
"unicode/utf8"
)
func cyclicSubstrings(str string) []string {
n := utf8.RuneCountInString(str)
substrs := make([]string, 0, n*n)
cycles := str + str
for i := range str {
cycle := cycles[i : i+len(str)]
for j, r := range cycle {
substrs = append(substrs, cycle[:j+utf8.RuneLen(r)])
}
}
return substrs
}
func main() {
peptide := "LENQ"
fmt.Println(cyclicSubstrings(peptide))
}
Output:
[L LE LEN LENQ E EN ENQ ENQL N NQ NQL NQLE Q QL QLE QLEN]