返回首页

求腾讯校招内容编辑类历年笔试题?

来源:www.fanlv.net  时间:2023-09-23 16:45   点击:137  编辑:admin   手机版

笔试时间:2023年9月6日 秋招

第一题

题目

小红定义一个数为“完美数”,当且仅当该数仅有一个非零数字。例如 5000,4,1,10,200都是完美数。小红拿到了一个大小为n的数组,她希望选择两个元素,满足它们的乘积为完美数。小红想知道,共有多少种不同的取法?

数据范围:

1<=n<=2000

1<=ai<=10^9

样例输入

[25,2,1,16]

样例输出

3

说明:25* 2=50,2* 1=2,25*16=400

参考题解

直接暴力就能过。

C++:[此代码未进行大量数据的测试,仅供参考]

class Solution {
public:
    using ll = long long;
    int perfectPair(vector<int>& arr) {
        int n = arr.size();
        int ans = 0;
        for (int i = 0; i < n; ++i) {
            for (int j = i + 1; j < n; ++j) {
                ll m = ll(arr[i]) * arr[j];
                string s = to_string(m);
                bool ok = true;
                for (int k = 1; k < s.size(); ++k) {
                    if (s[k] != '0') {
                        ok = false;
                        break;
                    }
                }
                ans += ok;
            }
        }
        return ans;
    }
};

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.List;

class Solution {
    public int perfectPair(List<Integer> arr) {
        int n = arr.size();
        int ans = 0;
        for (int i = 0; i < n; ++i) {
            for (int j = i + 1; j < n; ++j) {
                long m = (long) arr.get(i) * arr.get(j);
                String s = String.valueOf(m);
                boolean ok = true;
                for (int k = 1; k < s.length(); ++k) {
                    if (s.charAt(k) != '0') {
                        ok = false;
                        break;
                    }
                }
                ans += ok ? 1 : 0;
            }
        }
        return ans;
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

class Solution:
    def perfectPair(self, arr):
        n = len(arr)
        ans = 0
        for i in range(n):
            for j in range(i+1, n):
                m = arr[i] * arr[j]
                s = str(m)
                ok = True
                for k in range(1, len(s)):
                    if s[k] != '0':
                        ok = False
                        break
                ans += 1 if ok else 0
        return ans
2023 腾讯音乐笔试题 0906_牛客网


第二题

题目

我们定义子序列为字符串中可以不连续的一段,而子串则必须连续。例如rderd包含子序列"red”,且不包含子串"red”,因此该字符串为可爱串。小红想知道,长度为n的、仅由'r''e''d'三种字母组成的字符串中,有多少是可爱串? 答案请对10^9+7取模。数据范围:1<=n<=10^5

样例输入

4

样例输出

3

说明:

reed"、"rerd"、"rded"

2023 腾讯音乐笔试题 0906_牛客网
顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片