哈梅林的聋人大鼠【难度: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') &
;&
; town
[i
+1] == '~') {
i
++;
if(!piper
) {
deaf
++;
}
}
else if(town
[i
] == '~' &
;&
; (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') &
;&
; 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') &
;&
; 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
== '~' &
;&
; 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
;
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') &
;&
; (left
[1] == '~')) result
++;
left
= left
.Substring(2);
}
}
while (right
.Length
>= 2)
{
right
= right
.Trim();
if (right
.Length
> 0)
{
if ((right
[0] == '~') &
;&
; (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
;
}
}
转载请注明原文地址: https://mac.8miu.com/read-485297.html