C#练习题答案: 哈梅林的聋人大鼠【难度:2级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

mac2024-02-23  45

哈梅林的聋人大鼠【难度:2级】:

答案1:

using System.Linq; public class Dinglemouse { public static int CountDeafRats(string town) { var rats = town.Replace(" ", "").Split('P'); var leftCount = rats[0].Where((x,i) => i % 2 == 1).Count(x => x == '~'); var rightCount = rats[1].Where((x,i) => i % 2 == 0).Count(x =>x == '~'); return leftCount + rightCount; } }

答案2:

public class Dinglemouse { public static int CountDeafRats(string town) { var piperOnTheLeft = false; var Deaf = 0; for(int i = 0; i<town.Length; i++) { if(town[i] == 'P') piperOnTheLeft = true; if(town[i] == 'O') { i++; if(!piperOnTheLeft) Deaf++; continue; } if(town[i] == '~') { i++; if(piperOnTheLeft) Deaf++; continue; } } return Deaf; } }

答案3:

using System; public class Dinglemouse { public static int CountDeafRats(string town) { bool piper = false; int deaf = 0; for(int i = 0; i < town.Length; i++) { if(town[i] == 'P') { piper = !piper; } else if((town[i] == '0' || town[i] == 'O') &amp;&amp; town[i+1] == '~') { i++; if(!piper) { deaf++; } } else if(town[i] == '~' &amp;&amp; (town[i+1] == '0' || town[i+1] == 'O')) { i++; if(piper) { deaf++; } } } return deaf; } }

答案4:

public class Dinglemouse { public static int CountDeafRats(string town) { int dRats = 0; string[] rats = town.Replace(" ", "").Split('P'); for (int i = 0; i < rats[0].Length; i += 2) if ((rats[0][i] == '0' || rats[0][i] == 'O') &amp;&amp; rats[0][i + 1] == '~') dRats++; for (int i = 0; i < rats[1].Length; i += 2) if ((rats[1][i + 1] == '0' || rats[1][i + 1] == 'O') &amp;&amp; rats[1][i] == '~') dRats++; return dRats; } }

答案5:

using System.Linq; public class Dinglemouse { public static int CountDeafRats(string town) { string[] strArr = town.Split('P'); strArr[0] = new string(strArr[0].Reverse().ToArray()); int deafRats = 0; town = string.Join("", strArr).Replace(" ",""); for (int i = 0; i < town.Length; i+=2) if (town.Substring(i, 2) == "~O") deafRats++; return deafRats; } }

答案6:

using System; public class Dinglemouse { public static int CountDeafRats(string town) { var sides = town.Replace(" ", "").Split(new []{ "P" }, StringSplitOptions.None); return CheckSides(sides[0]).cl + CheckSides(sides[1]).cr; } private static (int cr, int cl) CheckSides(string side) { int countL = 0; int countR = 0; for (int i = 0; i < side.Length; i+=2) { if (side[i] == '~') countR++; else countL++; } return (countR, countL); } }

答案7:

using System.Linq; public class Dinglemouse { public static int CountDeafRats(string town) { return town.Replace(" ", "") .Split('P') .Select((x, i) => x.Where((y, j) => y == '~' &amp;&amp; j % 2 != i).Count()) .Sum(); } }

答案8:

using System; using System.Linq; public class Dinglemouse { public static int CountDeafRats(string town) { var count = 0; var cleanString = town.Replace(" ", ""); for (int i = 1; i < cleanString.Length; i += 2) { if (!(cleanString[i] == '0' || cleanString[i] == 'O')) count++; } return count; } }

答案9:

public class Dinglemouse { public static int CountDeafRats(string town) { int result = 0; if (!town.Contains("P")) result = 0; else { string left = town[0] != 'P' ? town.Substring(0, town.IndexOf("P")) : string.Empty; // town.Substring(1); string right = town[town.Length - 1] != 'P' ? town.Substring(town.IndexOf("P") + 1) : string.Empty; while (left.Length >= 2) { left = left.Trim(); if (left.Length > 0) { if ((left[0] == 'O') &amp;&amp; (left[1] == '~')) result++; left = left.Substring(2); } } while (right.Length >= 2) { right = right.Trim(); if (right.Length > 0) { if ((right[0] == '~') &amp;&amp; (right[1] == 'O')) result++; right = right.Substring(2); } } } return result; } }

答案10:

public class Dinglemouse { public static int CountDeafRats(string town) { int rats = 0; string[] arr = town.Replace(" ","").Split('P'); for(int i=0; i<arr[0].Length; i+=2) { if(arr[0][i] != '~') rats++; } for(int j=0; j<arr[1].Length; j+=2) { if(arr[1][j] != 'O') rats++; } return rats; } }
最新回复(0)