Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

「めとべや東京 #4」に行ってきた(その4「コーディング面接」by Microsoft MVP 岩永信之さん)

f:id:JHashimoto:20140409044240j:plain

5/31に「めとべや東京 #4」に行ってきたので、何度かに分けて勉強会の内容を紹介します。

めとべや東京#4
de:code 直後ということで、クライアントサイトテクノロジを中心に最新情報をいち早くまとめて聞いて見ませんか? ...

 

今回は4回目です。4つ目のセッションは、Microsoft MVP 岩永信之さんの「コーディング面接」でした。

コーディング面接で出題されそうな問題を、ライブコーディングするという内容でした。

セッション内容

ほぼ全編ライブコーディングだったので、あまりセッション内容で書くことはないのですが、勉強になった点を書いてみます。

出題例

  • 文字列の中から回文になっている部分をすべて列挙

まずはシンプルな実装を

  • 計算量は気にせずに
  • 後でアルゴリズムを改善していくときにテストにも使える
  • 改善した実装の結果と最初の実装の結果を比較して、一致すれば壊していないことが確認できる
  • 比較にはLINQのSequenceEqualを使うと便利

Enumerable.SequenceEqual メソッド (System.Linq)
等値比較子に従って 2 つのシーケンスが等しいかどうかを判断します。 ...

 
  • ただし、Listの要素の順序が異なるとfalseを返すので、OrderByすること

Enumerable.OrderBy メソッド (System.Linq)
シーケンスの要素を昇順に並べ替えます。 ...

 

アルゴリズムがらみではyield return便利

  • ListにAddしていくのは効率が悪いのでやめた方がいい

String.Substringは呼ぶたびに文字列をコピーしてしまう

  • SubStringクラスを実装して、必要な時だけ文字列をコピーするようにする

参考書籍

セッション中に参考書籍として挙げられていた本です。

世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本~

Gayle Laakmann McDowell マイナビ 2012-11-13
売り上げランキング : 91897
by ヨメレバ

セッション資料

コーディング面接 | ++C++; // 未確認飛行 C ブログ

関連エントリー

「めとべや東京 #4」に行ってきた(その1「ユニバーサルWindowsアプリ開発入門」 by Microsoft MVP大田一希さん) - プログラマーな日々

 

「めとべや東京 #4」に行ってきた(その2「Modern WPF」by Microsoft MVPぐらばくさん) - プログラマーな日々

 

「めとべや東京 #4」に行ってきた(その3「The Next Generation for C# Developers」by Microsoft MVP tanaka733さん) - プログラマーな日々

 

「めとべや東京 #4」に行ってきた(その5 LT) - プログラマーな日々