using System; using System.Collections.Generic; class Program { static string InputPattern = "InputX"; static List GetInputList() { var WillReturn = new List(); if (InputPattern == "Input1") { WillReturn.Add("BA"); //1 //BAを1回の操作で入れ替えてABにすることができます } else if (InputPattern == "Input2") { WillReturn.Add("B"); //0 //文字列は1文字の場合もあります。 //また、この場合文字Bはこれ以上右に行かないので右に寄っているとみなします。 } else if (InputPattern == "Input3") { WillReturn.Add("ABAABA"); //4 //「ABAABA」→「ABAAAB」→「AABAAB」→「AAABAB」→「AAAABB」。 //例えばこのような手順で最低4回の操作が必要です。 } else { string wkStr; while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr); } return WillReturn; } static void Main() { List InputList = GetInputList(); string S = InputList[0]; int Answer = 0; while (true) { int wkInd = S.IndexOf("BA"); if (wkInd == -1) break; S = S.Remove(wkInd, 2); S = S.Insert(wkInd, "AB"); Answer++; } Console.WriteLine(Answer); } }