交互反転

文字列が与えられたら、それをインタリーブする。これは、 abcdefghi
abcdefghij の0-索引付けのための方法です:

  1. Separate the chars at even indices from the chars at odd
    indices:

    a c e g i
     b d f h
    a c e g i b d f h j
  2. Reverse the chars at odd indices:
    a c e g i
     h f d b
    a c e g i j h f d b
  3. Interleave into one string again:
    ahcfedgbi
    ajchefgdib

ルール

  • 偶数長と奇数長の両方の文字列をサポートする必要があります。
  • 0-インデックスでは、偶数でなく奇数のインデックスで文字を反転する必要があります。
  • 1つの索引単位ではもちろん、奇数ではなく偶数のインデックスで文字を反転する必要があります。
  • 入力は印刷可能なASCII(コードポイント32-126)、改行なしで構成されます。
  • 文字列または文字のリスト(1-char文字列ではない)として入力できます。例えば。 文字列/
    char [] または char * [] または char
    **
    はそうではありません。

テストケース

Input
Output

Hello, World!
HdlroW ,olle!

Hello World!
H!llooW rlde

ABCDEFGHIJKLMNOPQRSTUVWXYZ
AZCXEVGTIRKPMNOLQJSHUFWDYB

 !"#$%&'()*+,-./0123456789:;<=>[email protected][]^_`abcdefghijklmnopqrstuvwxyz{|}~
 }"{$y&w(u*s,q.o0m2k4i6g8e:c[email protected]]B[DYFWHUJSLQNOPMRKTIVGXEZCA^?`=b;d9f7h5j3l1n/p-r+t)v'x%z#|!~

P
P

AB
AB

xyz
xyz

空の文字列の場合は、空の文字列自体を返します。

ベストアンサー

MATL, 8 bytes

t2L)P5M(

Try it online! Or
verify all test cases.

説明

t     % Implicit input. Duplicate
      % STACK: 'abcdefghi', 'abcdefghi'
2L    % Push [2, 2, 1j]. This represents 2:2:end when used as an index
      % STACK: 'abcdefghi', 'abcdefghi', [2, 2, 1j]
)     % Get entries at those indices
      % STACK: 'abcdefghi', 'bdfh'
P     % Flip
      % STACK: 'abcdefghi', 'hfdb'
5M    % Push [2, 2, 1j] again
      % STACK: 'abcdefghi', 'hfdb', [2, 2, 1j]
(     % Write entries at those indices. Implicit display
      % STACK: 'ahcfedgbi'

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です