默克将与中国生物科技公司百济神州合作研发新药 zz# Biology - 生物学
h*8
1 楼
题目:
The Game of Master Mind is played as follows:
The computer has four slots containing balls that are red (R), yellow (Y),
green (G) or blue (B). For example, the computer might have RGGB (e.g., Slot
#1 is red, Slots #2 and #3 are green, Slot #4 is blue).
You, the user, are trying to guess the solution. You might, for example,
guess YRGB.
When you guess the correct color for the correct slot, you get a “hit”. If
you guess a color that exists but is in the wrong slot, you get a “pseudo-
hit”. For example, the guess YRGB has 2 hits and one pseudo hit.
For each guess, you are told the number of hits and pseudo-hits.
Write a method that, given a guess and a solution, returns the number of
hits and pseudo hits.
solution:
1 public static class Result {
2 public int hits;
3 public int pseudoHits;
4 };
5
6 public static Result estimate(String guess, String solution) {
7 Result res = new Result();
8 int solution_mask = 0;
9 for (int i = 0; i < 4; ++i) {
10 solution_mask |= 1 << (1 + solution.charAt(i) - ‘A’);
11 }
12 for (int i = 0; i < 4; ++i) {
13 if (guess.charAt(i) == solution.charAt(i)) {
14 ++res.hits;
15 } else if ((solution_mask &
16 (1 << (1 + guess.charAt(i) - ‘A’))) >= 1) {
17 ++res.pseudoHits;
18 }
19 }
20 return res;
21 }
请问第10行的:
10 solution_mask |= 1 << (1 + solution.charAt(i) - ‘A’);
还有
15 } else if ((solution_mask &
16 (1 << (1 + guess.charAt(i) - ‘A’))) >= 1)
没看懂,请大家指教,多谢多谢
The Game of Master Mind is played as follows:
The computer has four slots containing balls that are red (R), yellow (Y),
green (G) or blue (B). For example, the computer might have RGGB (e.g., Slot
#1 is red, Slots #2 and #3 are green, Slot #4 is blue).
You, the user, are trying to guess the solution. You might, for example,
guess YRGB.
When you guess the correct color for the correct slot, you get a “hit”. If
you guess a color that exists but is in the wrong slot, you get a “pseudo-
hit”. For example, the guess YRGB has 2 hits and one pseudo hit.
For each guess, you are told the number of hits and pseudo-hits.
Write a method that, given a guess and a solution, returns the number of
hits and pseudo hits.
solution:
1 public static class Result {
2 public int hits;
3 public int pseudoHits;
4 };
5
6 public static Result estimate(String guess, String solution) {
7 Result res = new Result();
8 int solution_mask = 0;
9 for (int i = 0; i < 4; ++i) {
10 solution_mask |= 1 << (1 + solution.charAt(i) - ‘A’);
11 }
12 for (int i = 0; i < 4; ++i) {
13 if (guess.charAt(i) == solution.charAt(i)) {
14 ++res.hits;
15 } else if ((solution_mask &
16 (1 << (1 + guess.charAt(i) - ‘A’))) >= 1) {
17 ++res.pseudoHits;
18 }
19 }
20 return res;
21 }
请问第10行的:
10 solution_mask |= 1 << (1 + solution.charAt(i) - ‘A’);
还有
15 } else if ((solution_mask &
16 (1 << (1 + guess.charAt(i) - ‘A’))) >= 1)
没看懂,请大家指教,多谢多谢