Problem · String

Markdown Header Chunks

MediumSierraFULLTIMEPHONE SCREEN

Split a Markdown document into chunks whose text length does not exceed maxChunkSize whenever possible. Lines must remain intact.

When a new chunk starts inside a Markdown header section, prepend the active header path to that chunk. For example, if the current content is under # A and ## B, the new chunk should start with those header lines before adding the next content lines.

Return each chunk as a display string where the lines inside that chunk are joined by | .

Examples
01 · Example 1
markdown = "# A\nshort\nlonger line\n## B\nx\ny"
maxChunkSize = 20
return = ["# A | short","# A | longer line","# A | ## B | x | y"]

The second chunk repeats the active # A header before continuing content under that section.

02 · Example 2
markdown = "# Guide\nalpha\nbeta"
maxChunkSize = 30
return = ["# Guide | alpha | beta"]

The whole document fits within one chunk.

Constraints

Header lines are lines whose first non-space character is #. If a single non-header line plus its active headers is longer than maxChunkSize, keep that line in its own chunk with the active headers.

drafts saved locally
public String[] chunkMarkdown(String markdown, int maxChunkSize) {
    // write your code here
}
markdown"# A\nshort\nlonger line\n## B\nx\ny"
maxChunkSize20
expected["# A | short", "# A | longer line", "# A | ## B | x | y"]
sign in to submit