Start learning free

LESSON 609 OF 677 · PROJECTS: COMMAND-LINE TOOLS

CLI Tool: head v1 — First 10 Lines

Practice

Build a tiny version of the Unix head command. Given a list of lines, return the first 10 lines joined by newline characters (\n). If the input has fewer than 10 lines, return all of them. If there are no lines at all, return the empty string.

Function signature:

fun head(lines: List<String>): String

Example:

Input: lines = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m"]

Output: "a\nb\nc\nd\ne\nf\ng\nh\ni\nj"

When printed:
a
b
c
d
e
f
g
h
i
j

Use List.subList(fromIndex, toIndex) to grab the first 10 lines, but cap toIndex at lines.size when the list is shorter than 10. Then joinToString("\n").

Compute val end = minOf(10, lines.size), then call lines.subList(0, end).

The full solution:
class Solution {
    fun head(lines: List<String>): String {
        val end = minOf(10, lines.size)
        return lines.subList(0, end).joinToString("\n")
    }
}

STEP 1 OF 2
    Ctrl + Enter to check