Сортировка списка строк по длине

Board index Программирование Задачник

Description: Различные задачи для тренировки

#1by mexan » 02.01.2025, 22:43

Напишите программу, которая отсортирует эти строки по длине с использованием анонимной функции.

Code: Select all
Входные данные: ["apple", "cat", "banana", "go"]
Выходные данные: ["go", "cat", "apple", "banana"]
mexan
Администратор
Reputation: 0
Posts: 177
Topics: 136

#2by mexan » 02.01.2025, 22:43

Решение на Go:
Code: Select all
package main

import (
   "fmt"
)

func main() {
   // Входные данные
   strs := []string{"apple", "cat", "banana", "go"}

   // Анонимная функция для сравнения длин строк
   less := func(a, b string) bool {
      return len([]rune(a)) < len([]rune(b))
   }

   // Реализация сортировки выбором
   n := len(strs)
   for i := 0; i < n-1; i++ {
      minIdx := i
      for j := i + 1; j < n; j++ {
         if less(strs[j], strs[minIdx]) {
            minIdx = j
         }
      }
      // Обмен элементов, если найден минимальный элемент
      if minIdx != i {
         strs[i], strs[minIdx] = strs[minIdx], strs[i]
      }
   }

   // Вывод отсортированного слайса
   fmt.Println(strs)
}
mexan
Администратор
Reputation: 0
Posts: 177
Topics: 136


Return to Задачник

cron