アイズオンラインジャッジメント(AOJ)のプログラムコード置き場(C#) [ITP1_9]
こんにちは。シジミです。
この記事はAOJで回答したコードを随時置いていきます。
構成としまして、以下のように三弾構成にしています。
環境はvisual sutadio 2019、言語はC#です。
問題:ITP1_9_A
解説:Listに取り込んであげて、そのリスト内で一致する単語をCountしています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace ITP_1_9A
{
class Program
{
static void Main(string[] args)
{
var N = Console.ReadLine();
List<string> S = new List<string>();
string line;
while (( line = Console.ReadLine())!= "END_OF_TEXT")
{
S.AddRange( line.Split(' ').ToList());
}
Console.WriteLine(S.Count(x => x.ToLower()==N.ToLower()));
return;
}
}
}
問題:ITP1_9_B
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace ITP_1_9B
{
class Program
{
static void Main(string[] args)
{
int n,i,j;
n = i = j = 0;
string str = "";
string line = "";
while (( line = Console.ReadLine())!= "-")
{
if (!int.TryParse(line, out n))
{
str = line;
}
else if (i==1)
{
j = n+1;
}
else if(i>1)
{
string strage = str.Substring(0, n);
int length = str.Length-n;
str = str.Substring(n, length);
str += strage;
}
if (i ==j && i!=0)
{
Console.WriteLine(str);
i = -1;
}
i++;
}
return;
}
}
}
問題:ITP1_9_C
解説:Compareメソッドを使うと辞書順の比較ができます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace ITP_1_9C
{
class Program
{
static void Main(string[] args)
{
var N = Console.ReadLine().Trim().Split(' ').Select(s => int.Parse(s)).ToArray();
int a, b;
a = b = 0;
for (int i = 0; i < N[0]; i++)
{
var battle = Console.ReadLine().Trim().Split(' ').ToArray();
if (string.Compare(battle[0],battle[1]) == -1)
{
b+=3;
}
if (string.Compare(battle[0],battle[1]) == 0)
{
a++;
b++;
}
if (string.Compare(battle[0],battle[1]) == 1)
{
a += 3;
}
}
Console.WriteLine("{0} {1}", a,b);
return;
}
}
}
問題:ITP1_9_D
解説:C++のreplaceメソッドと同じような動きをsubstrongメソッドを使って再現しています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace ITP_1_6A
{
class Program
{
static void Main(string[] args)
{
var S = Console.ReadLine().Trim().Split(' ').ToArray();
var N = Console.ReadLine().Trim().Split(' ').Select(s => int.Parse(s)).ToArray();
char[] str = S[0].ToCharArray();
string str_ = "";
int a, b;
a = b = 0;
for (int i = 0; i < N[0]; i++)
{
var order = Console.ReadLine().Trim().Split(' ').ToArray();
a = int.Parse(order[1]);
b = int.Parse(order[2]);
if (order[0] == "print")
{
str_ = new string(str);
Console.WriteLine(str_.Substring(a, b - a + 1));
}
else if (order[0] == "reverse")
{
Array.Reverse(str,a,b-a+1);
}
else if (order[0] == "replace")
{
str_ = new string(str);
str_ = str_.Substring(0, a) + order[3] + str_.Substring(b+1, str_.Length-1-b);
str = str_.ToCharArray();
}
}
return;
}
}
}