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"