Build the next version of the Unix sort command, this time with the -r flag baked in. Given a list of lines, return them sorted in descending order by character code (the exact reverse of v1's order, like LC_ALL=C sort -r: lowercase letters come before uppercase ones), joined by newline characters (\n). Duplicates are all kept. If the list is empty, return the empty string.
Function signature:
func sortLines(lines []string) string
Example:
Input: lines = ["banana", "apple", "cherry"] Output: "cherry\nbanana\napple" When printed: cherry banana apple
Use
sort.Slice with a less-function that returns sortedLines[i] > sortedLines[j] for descending order, then combine with strings.Join.
The full solution:
func sortLines(lines []string) string {
sortedLines := append([]string{}, lines...)
sort.Slice(sortedLines, func(i, j int) bool { return sortedLines[i] > sortedLines[j] })
return strings.Join(sortedLines, "\n")
}
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check
