こないだのAtCoderで「割とこういうの出るけど出る度考えてる気がする」
ってのがあったので改善することに。
問題はこれです。
B - Count ABC
文字列の中に単語があったらカウントする、ってやつですね。
コンテストではこんなコードで通しました。
for(var i = 0; i<s.Length - 2; i++) { if(s[i] == 'A') { if(s[i + 1] == 'B') { if (s[i + 2] == 'C') { count++; } } } } Console.WriteLine(count);
リンク
通ったはいいんですけどネスト深いしなんかダサいし・・・
こいつをいい感じにしたいと思い、解説放送を見てきました。
それで出来上がったのがこちらのメソッド
public int CountContainWords(string source, string word) { var count = 0; var loopCount = source.Length - (word.Length - 1); for (var i = 0; i < loopCount; i++) { if (source.Substring(i, word.Length) == word) { count++; } } return count; }
凄いスッキリしました。