No Programming, No Life

プログラミング関連の話題や雑記

お題:文字列を先頭から見て同じところまで除去

プログラミングお題の一覧はこちら

※みなさんもこのお題をお気に入りの言語で解いてみて下さい。解いたらこの記事にトラックバックをお願いします。

説明

複数の文字列を受け取り、受け取った文字列をそれぞれ先頭から見てゆき、すべてが同じ内容であれば除去した内容の文字列を返却する関数を書いて下さい。

※関数の引数と戻り値については複数の文字列が受け渡しできれば型や方法は問いません*1。

例1)hoge("abcdef", "abc123")
戻り値 => "def" と "123" ("abc" が除去される)

例2)hoge("あいうえお", "あいさんさん", "あいどる")
戻り値 => "うえお", "さんさん", "どる" ("あい" が除去される)

例3)hoge("12345", "67890", "12abc")
戻り値 => "12345", "67890", "12abc" (一致なしのため、そのまま返却される)

例4)hoge("a", "ab", "abc")
戻り値 => "", "b", "bc"

例5)hoge(null, "a", "ab")
戻り値 => null, "b", "bc" (どこかにnullがあれば、一致なしと見なしそのまま返却される)

例6)hoge("", "a", "ab")
戻り値 => "", "b", "bc" (どこかに空文字があれば、一致なしと見なしそのまま返却される)

解いてみた

Groovy (2011-08-20更新)


Twitterでの反応

@さん by Scala



@さん by Ruby

@さん by Scala

@さん by Erlang

お題:文字列を先頭から見て同じところまで除去 http://bit.ly/oby7HE — Gist

コメント欄から

Haskellで書いてみました
ujihisa's
gist: 1145718 — Gist

clojureで解いてみました http://hiroftp.blogspot.com/2011/08/clojure.html

更新履歴

  • 2011-08-20 例4・例5・例6を追加しました。

via

*1:文字列配列で受け取り、文字列配列で返却するなど。