トップページに戻る    次の競技プログラミングの問題へ    前の競技プログラミングの問題へ

ABC-029-B カキ

■■■問題■■■

英小文字からなる12個の文字列 S1, S2, ・・・ , S12 が入力されます。
これらの文字列のうち、文字rが含まれるものの個数を数えてください。

■■■入力■■■

S1
S2
・・・
S12

i 行目 (1  <=  i  <=  12) に、英小文字からなる文字列 Si (1  <=  |Si|  <=  10) が与えられる。
これらの文字列はすべて異なる。

■■■出力■■■

標準出力に、12個の文字列 S1, S2, ・・・ , S12 のうち文字rが含まれるものの個数を出力し、
最後に改行せよ。
rを複数個含む文字列は1度だけ数える。


C#のソース

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string InputPattern = "Input1";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("january");
            WillReturn.Add("february");
            WillReturn.Add("march");
            WillReturn.Add("april");
            WillReturn.Add("may");
            WillReturn.Add("june");
            WillReturn.Add("july");
            WillReturn.Add("august");
            WillReturn.Add("september");
            WillReturn.Add("october");
            WillReturn.Add("november");
            WillReturn.Add("december");
            //8
            //S1, S2, S3, S4, S9, S10, S11, S12 の8個の文字列に文字rが含まれています。
            //S2にはrが2回出現していますが、1度しか数えません。
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("rrrrrrrrrr");
            WillReturn.Add("srrrrrrrrr");
            WillReturn.Add("rsr");
            WillReturn.Add("ssr");
            WillReturn.Add("rrs");
            WillReturn.Add("srsrrrrrr");
            WillReturn.Add("rssrrrrrr");
            WillReturn.Add("sss");
            WillReturn.Add("rrr");
            WillReturn.Add("srr");
            WillReturn.Add("rsrrrrrrrr");
            WillReturn.Add("ssrrrrrrrr");
            //11
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();
        Console.WriteLine(InputList.Count(X => X.Contains('r')));
    }
}


解説

LINQのCountメソッドと
LINQのContainsメソッドを使ってます。