Reorder a String by Alternating Its Front and Back Characters

Quick Overview

Rearrange a string by taking characters alternately from its front and its back: first, last, second, second-to-last and so on until every character is used once. Tests clean index handling for even and odd lengths and building the result efficiently for long inputs.

Reorder a String by Alternating Its Front and Back Characters

Company: Capital One

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: hard

Interview Round: Online Assessment

Given a string `s`, build a new string by taking characters alternately from the front and the back of `s`: the first character, then the last character, then the second character, then the second-to-last character, and so on, until every character of `s` has been used exactly once. ### Function Signature ```python def reorder_front_back(s: str) -> str: ``` ### Rules - Let `n = len(s)`. The output is `s[0]`, `s[n-1]`, `s[1]`, `s[n-2]`, `s[2]`, `s[n-3]`, and so on, stopping as soon as `n` characters have been written. - Every position of `s` is used exactly once, so the output also has length `n`. When `n` is odd, the middle character `s[n // 2]` is the last one written. - Characters are copied unchanged. ### Constraints - `1 <= len(s) <= 10^5` - `s` consists of lowercase English letters. ### Examples **Example 1** ```text Input: s = "abcdef" Output: "afbecd" ``` The characters are taken in the order `a` (first), `f` (last), `b` (second), `e` (second-to-last), `c`, `d`. **Example 2** ```text Input: s = "hello" Output: "hoell" ``` The order is `h` (first), `o` (last), `e` (second), `l` (second-to-last), and finally the middle `l`. **Example 3** ```text Input: s = "x" Output: "x" ```

Overview: Rearrange a string by taking characters alternately from its front and its back: first, last, second, second-to-last and so on until every character is used once. Tests clean index handling for even and odd lengths and building the result efficiently for long inputs.

|Home/Coding & Algorithms/Capital One
Capital One logo
Capital One
Sep 10, 2026
hardSoftware EngineerOnline AssessmentCoding & Algorithms
0
0

Given a string s, build a new string by taking characters alternately from the front and the back of s: the first character, then the last character, then the second character, then the second-to-last character, and so on, until every character of s has been used exactly once.

Function Signature

def reorder_front_back(s: str) -> str:

Rules

  • Let n = len(s) . The output is s[0] , s[n-1] , s[1] , s[n-2] , s[2] , s[n-3] , and so on, stopping as soon as n characters have been written.
  • Every position of s is used exactly once, so the output also has length n . When n is odd, the middle character s[n // 2] is the last one written.
  • Characters are copied unchanged.

Constraints

  • 1 <= len(s) <= 10^5
  • s consists of lowercase English letters.

Examples

Example 1

Input:  s = "abcdef"
Output: "afbecd"

The characters are taken in the order a (first), f (last), b (second), e (second-to-last), c, d.

Example 2

Input:  s = "hello"
Output: "hoell"

The order is h (first), o (last), e (second), l (second-to-last), and finally the middle l.

Example 3

Input:  s = "x"
Output: "x"

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...