LCP 01. 猜数字:
小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?
输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。
样例 1
输入:
guess = [1,2,3], answer = [1,2,3]
输出:
3
解释:
小A 每次都猜对了。
样例 2
输入:
guess = [2,2,3], answer = [3,2,1]
输出:
1
解释:
小A 只猜对了第二次。
限制
- guess 的长度 = 3
- answer 的长度 = 3
- guess 的元素取值为 {1, 2, 3} 之一。
- answer 的元素取值为 {1, 2, 3} 之一。
分析
- 这道题选不到rust语言。
- 这道题很简单,但是总觉得可能有什么地方能优化。
题解
java
class Solution {
public int game(int[] guess, int[] answer) {
return (guess[0] == answer[0] ? 1 : 0) + (guess[1] == answer[1] ? 1 : 0) + (guess[2] == answer[2] ? 1 : 0);
}
}
c
int game(int* guess, int guessSize, int* answer, int answerSize){
return (guess[0] == answer[0] ? 1 : 0) + (guess[1] == answer[1] ? 1 : 0) + (guess[2] == answer[2] ? 1 : 0);
}
c++
class Solution {
public:
int game(vector<int>& guess, vector<int>& answer) {
return (guess[0] == answer[0] ? 1 : 0) + (guess[1] == answer[1] ? 1 : 0) + (guess[2] == answer[2] ? 1 : 0);
}
};
python
class Solution:
def game(self, guess: List[int], answer: List[int]) -> int:
return sum(guess[i] == answer[i] for i in range(3))
go
func game(guess []int, answer []int) int {
ans := 0
if guess[0] == answer[0] {
ans++
}
if guess[1] == answer[1] {
ans++
}
if guess[2] == answer[2] {
ans++
}
return ans
}
原题传送门:https://leetcode-cn.com/problems/guess-numbers/
非常感谢你阅读本文~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://developer.aliyun.com/profile/sqd6avc7qgj7y 博客原创~