Перейти к содержимому

(код без описания)

misc · generalVK / ВК (ВКонтакте) - 24 кв 2025не решено

(код без описания)

/*
- Написать функцию, которая заменит все пробелы в строке на "%20 "inplace.
- На вход подается слайс с зарезервированными под расширение символами.
- Пример:
- input: ['g','o','','t','a','s','k','\x00 ','\x00 ']
- output: ['g','o','%','2','0','t','a','s','k']
- <p >_ Ограничения: O(1) по памяти, O(N) по времени.
_/
func urlEncodeSpaces(input []rune) {
// TODO:
}
func testUrlEncodeSpaces(name string, input, expected []rune) {
urlEncodeSpaces(input)
passed := slicesEqualRunes(input, expected)
fmt.Printf("Тест: %s\n ", name)
fmt.Printf("Ожидаемый результат: %q\n ", string(expected))
fmt.Printf("Полученный результат: %q\n ", string(input))
if passed {
fmt.Println("✅ ПРОЙДЕН ")
} else {
fmt.Println("❌ НЕ ПРОЙДЕН ")
}
fmt.Println()
}
func slicesEqualRunes(a, b []rune) bool {
if len(a) != len(b) {
return false
}
for i := range a {
if a[i] != b[i] {
return false
}
}
return true
}
func main() {
fmt.Println("Запуск тестов:")
fmt.Println(strings.Repeat("=", 50))
testCases := []struct {
name string
input []rune
expected []rune
}{
{
name: "Пример из условия ",
input: []rune{'g', 'o', '','t ','a ','s ','k ','\x00 ','\x00 '},
expected: []rune{'g', 'o', '%','2 ','0 ','t ','a ','s ','k '},
},
{
name: "Несколько пробелов ",
input: []rune{'a', '','b ','','c ','\x00 ','\x00 ','\x00 ','\x00 '},
expected: []rune{'a', '%','2 ','0 ','b ','%','2 ','0 ','c '},
},
{
name: "Без пробелов ",
input: []rune{'n', 'o', 's', 'p', 'a', 'c', 'e', 's'},
expected: []rune{'n', 'o', 's', 'p', 'a', 'c', 'e', 's'},
},
{
name: "Пробел в начале ",
input: []rune{'','a ','b ','c ','\x00 ','\x00 '},
expected: []rune{'%','2 ','0 ','a ','b ','c '},
},
{
name: "Пробел в конце ",
input: []rune{'a', 'b', 'c', '','\x00 ','\x00 '},
expected: []rune{'a', 'b', 'c', '%','2 ','0 '},
},
{
name: "Только пробел ",
input: []rune{'','\x00 ','\x00 '},
expected: []rune{'%','2 ','0 '},
},
}
for \_, tc := range testCases {
in := make([]rune, len(tc.input))
copy(in, tc.input)
testUrlEncodeSpaces(tc.name, in, tc.expected)
}
}

Источник: VK / ВК (ВКонтакте) - 2 · 4 кв 2025

← ## Условие · Все задачи · Разное · ## Условие →