From 201ed716eeb52deb7f45da77a4b9921381d270f5 Mon Sep 17 00:00:00 2001 From: linbergil Date: Sun, 5 Nov 2023 15:53:16 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=D1=8F=D0=B5=D0=BC=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=81=D0=B8=D0=BC=D0=B2=D0=BE=D0=BB=D0=B0=20=D0=BF=D1=80=D0=B8?= =?UTF-8?q?=203-=D1=91=D1=85=20=D0=B8=20=D0=B1=D0=BE=D0=BB=D0=B5=D0=B5=20?= =?UTF-8?q?=D0=B7=D0=BD=D0=B0=D0=BA=D0=B0=D1=85=20=D0=B2=20=D1=87=D0=B8?= =?UTF-8?q?=D1=81=D0=BB=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unpack.go | 6 +++--- unpack_test.go | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/unpack.go b/unpack.go index 997b332..503a516 100644 --- a/unpack.go +++ b/unpack.go @@ -61,9 +61,9 @@ func Unpack(str string) (string, error) { } case number: if unicode.IsDigit(char) { - var n = strconv.Itoa(numOfRepeat) - numOfRepeat, _ = strconv.Atoi(n + string(char)) - repStr, err := repeatRune(runeArray[i-2], numOfRepeat) + var n = strconv.Itoa(numOfRepeat) + string(char) + numOfRepeat, _ = strconv.Atoi(n) + repStr, err := repeatRune(runeArray[i-len(n)], numOfRepeat) if err != nil { // Если функция repeatRune возвращает ошибку, удаляем последний символ из результата. res := result.String() diff --git a/unpack_test.go b/unpack_test.go index 5f7af3e..5ecf2de 100644 --- a/unpack_test.go +++ b/unpack_test.go @@ -56,6 +56,7 @@ func TestStringContainsNumber(t *testing.T) { }{ {input: "aaa10b", expected: "aaaaaaaaaaaab"}, {input: "a12b4", expected: "aaaaaaaaaaaabbbb"}, + {input: "a100", expected: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}, } for _, tc := range testStrings { t.Run(tc.input, func(t *testing.T) {