paizaオンラインハッカソン7に参加してみた – 猫耳(C++, Swift)

paizaオンラインハッカソン7に参加してみた – 縞ニーソ(C++, Swift)からしばらくたって、新たなお題が追加されたということなので、今回は猫耳にチャレンジしてみたい。ソースコードはGitHubにも公開しているので、ぜひとも参照されたい。

今回のお題の目的

今回のお題の目的は、入力された文字列から「cat」を検索して、ヒットした回数を出力するというものである。従って、今回の場合は以下の要素が必要になると言える。

  • forループ
  • 条件分岐
  • 文字列をどうするか

サンプルコード

C++

cf: https://github.com/saitomarch/POH7/blob/master/cpp/nekomimi.cpp

Swift

解説

今回の場合は、まず入力された文字を頭からforループで回し、「cat」の先頭比較する。もし先頭が一致した場合は、そこからその部分が「cat」かどうかを判定して、一致していれば見つかったカウントを加算している。

それを最後からcatの文字数分差し引いたところまで確認して、最終的にヒットした数を出力している。

今回は状況によって無駄な処理があるため、最適化しきれていない部分があるが、大体のことはわかるようになるはずだろう。

なお、今回のお題ではC++では概ね簡単だったが、Swiftではインデックスの取り方がかなり面倒だった。

最後に

今回もプログラミング言語のうち、文字列の扱いがわかればそれなりに簡単に解けるだろう。当方のサンプルコードも参考にして、ぜひともチャレンジしてもらいたい。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。ご用の方はコメントかコンタクトフォームにて。