算法学习LCP 01. 猜数字(java / c / c++ / python / go)

Posted 二当家的白帽子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法学习LCP 01. 猜数字(java / c / c++ / python / go)相关的知识,希望对你有一定的参考价值。

非常感谢你阅读本文~
欢迎【👍点赞】【⭐收藏】【📝评论】~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子 https://le-yi.blog.csdn.net/ 博客原创~



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/


以上是关于算法学习LCP 01. 猜数字(java / c / c++ / python / go)的主要内容,如果未能解决你的问题,请参考以下文章

算法学习LCP 06. 拿硬币(java / c / c++ / python / go / rust)

算法学习LCP 06. 拿硬币(java / c / c++ / python / go / rust)

LeetCodeLCP 01. 猜数字(C++)

算法学习LCP 44. 开幕式焰火(java / c / c++ / python / go / rust)

使用C语言编写猜数字问题

算法习题---3.01猜数字游戏提示