トップページに戻る
次の競技プログラミングの問題へ
前の競技プログラミングの問題へ
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メソッドを使ってます。