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

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
}

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


原题传送门:https://leetcode-cn.com/problems/guess-numbers/


非常感谢你阅读本文~
放弃不难,但坚持一定很酷~
希望我们大家都能每天进步一点点~
本文由 二当家的白帽子:https://developer.aliyun.com/profile/sqd6avc7qgj7y 博客原创~

上一篇:【Java 与数据库】JDBC中日期时间的处理技巧


下一篇:[Jest] Set up Testing Globals in an Application with Jest