challenge 文字列の反転

与えられた文字列sを前後逆転したものを返す関数reverse_stringを作成してください。 ただし、sはShift-JISでエンコードされている文字列だと仮定して構いません。

サンプル入出力

>>> print reverse_string("Hello")
olleH
>>> print reverse_string("こんにちは")
はちにんこ
>>> print reverse_string("濁点(だくてん)")
)んてくだ(点濁

Posted feedbacks - 秀丸マクロ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
    call reverse_string "Hello";
    message $$return;
    call reverse_string "こんにちは";
    message $$return;
    call reverse_string "濁点(だくてん)";
    message $$return;
    endmacro;

reverse_string:
    $$result = "";
    while( $$1 != "" ) {
        $$char = unichar( unicode( $$1 ) );
        $$result = $$char + $$result;
        $$1 = rightstr( $$1, strlen( $$1 ) - strlen( $$char ) );
    }
    return $$result;

unichar 、 unicode でなく、 char と ascii でもマルチバイト文字に対応していましたので以下のコードでも動きました。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
    call reverse_string "Hello";
    message $$return;
    call reverse_string "こんにちは";
    message $$return;
    call reverse_string "濁点(だくてん)";
    message $$return;
    endmacro;

reverse_string:
    $$result = "";
    while( $$1 != "" ) {
        $$char = char( ascii( $$1 ) );
        $$result = $$char + $$result;
        $$1 = rightstr( $$1, strlen( $$1 ) - strlen( $$char ) );
    }
    return $$result;

Index

Feed

Other

Link

Pathtraq

loading...