СodeWars, Golang решаем задачи #1
Строки в golang это что-то особенное, учимся работать с ними
Стартую серию статей по решению задач на кодварс.
В каждой заметке будет одна задача либо на GO, либо на SQL.
8 kyu - Remove First and Last Character It's pretty straightforward. Your goal is to create a function that removes the first and last characters of a string. You're given one parameter, the original string. You don't have to worry with strings with less than two characters.
Задача 8 уровня сложности(на сайте кодварс 8 самый легкий). Удалить первый и последний символ.
Это просто. Твоя задача создать функцию которая удалит первый и последний символ в строке. У тебя один входящий параметр, оригинальная строка. Тебе не нужно беспокоиться за строки состоящие всего из двух символов.
Дана функцию, которую нужно заполнить кодом. Приступим к решению.
func RemoveChar(word string) string { }
Первое что пришло в голову определить длину строки перебрать эту строку в цикле и отрезать первый и последний символы.
func RemoveChar(word string) string { result := "" // Определяем переменную для возврата max := len(word) - 1 // Определяем длину строки for i, sm := range word { //обходим посимвольно строку в цикле if i != 0 { if i != max { result = result + string(sm) } } } return result }
Это решение будет работать, но оно очень плохое.
Лучшее решение для этой задачи:
func RemoveChar(word string) string { return word[1:len(word)-1] }
Из-за особенности работы со строками в golang, мы можем просто обратится к строке по индексам и вернуть все символы кроме первого и последнего. Такое решение намного быстрее и проще в обслуживании и чтении кода.
Еще немного улучшим код, представим что нам все же может прийти строка длиною 2 или меньше символов.
func RemoveChar(word string) (result string) { if len(word) > 2 { result = word[1 : len(word)-1] } return }