FizzBuzzより実用的なプログラマ向け面接問題考えた

仕様

TwitterのURL自動リンクみたいな機能を実現する関数expandString(String):Stringを実装しなさい(言語自由)

入力: 文字列 出力: HTML断片文字列

以下の文字列をリンクに展開すること

ただし、上記の仕様は曖昧である。詳細についてはセキュリティと利便性に配慮し決定すること。

サンプル入出力

expandString('hoge')
=> hoge

expandString('リンク http://example.com/')
=> リンク <a href="http://example.com/">http://example.com/</a>

expandString('@todesking fuck')
=> <a href="http://twitter.com/todesking/">@todesking</a> fuck

expandString('目立つ色があるのではなく、他と違う色が目立つ #huroushotoku')
=> 目立つ色があるのではなく、他と違う色が目立つ <a href="http://twitter.com/#search?q=%23huroushotoku">#huroushotoku</a>

本当にあった怖い話

こんな処理簡単だとお思いでしょう。しかし。
オートリンク機能は本家を筆頭としたtwitter関連サービス各種に存在するが、メジャーなサービスであってもまともに実装できてないケースが多々ある。リンクはしょっちゅう壊れ、時にはXSSも。