TopCoder SRM 155 DIV 1 Easy 練習
問題
子、母、男のDNAっぽいのが与えられるので、男が子の父親かどうか判定してねっていう。
母からのDNAを半分、男からのDNAを半分ずつそれぞれ子が引き継いでいる場合は父親だと思うよ。
解
男と子の間の一致数が半分を超えて、かつ男と母どちらでもないDNAが無ければ父親じゃね。
using System; using System.Text; using System.Text.RegularExpressions; using System.Collections; using System.Collections.Generic; public class PaternityTest { private bool CanBe(string c, string m, string man) { int res = 0; for (int i = 0; i < c.Length; ++i) if (c[i] == man[i]) res++; else if (c[i] != m[i]) return false; return res >= c.Length / 2; } public int[] possibleFathers(string child, string mother, string[] men) { List<int> res = new List<int>(); for (int i = 0; i < men.Length; ++i) if(CanBe(child, mother, men[i])) res.Add(i); return res.ToArray(); } }