当前位置: 首页 > 面试经验 >

钉钉笔试简单题解

优质
小牛编辑
77浏览
2024-04-16

钉钉笔试简单题解

今天笔试比较照顾人,甚至于第三题还提示不建议用python,当然我用不用都是一样的,暴力2.25

第一题:模拟

注意点就是柱状图的高度是以最高的柱为准,先要求出mx

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();in.nextLine();
        int[] arr = new int[n]; 
        int mx = 0;
        for(int i=0;i<n;i++){
            arr[i] = in.nextInt();
            mx = Math.max(mx,arr[i]);
        }
        char[][] ch = new char[mx][n];
        for(int i=0;i<n;i++){
            int a = arr[i];
            int j=mx-1;
            for(;j>mx-1-a;j--){
                ch[j][i] = '+';
            }
            for(;j>=0;j--){
                ch[j][i] = '-';
            }
        }
        for(int i=0;i<mx;i++){
            for(int j=0;j<n;j++){
                System.out.print(ch[i][j]);
            }
            System.out.println();
        }
    }
}

第二题:模拟

就是简单的通过标志位表示当前的字母,

如果当前字母剩余长度小于等于0,那么就切换

这里会出现小于0是因为如果当前长度为0,而p[i]为-1,那么省去判定cur的值,直接cur-=1,所以会出现长度小于0

a,b,n = (int(i) for i in input().split(' '))
p = [i for i in input().split(' ')]
# print(p)
res = ''
sign = True
cur = a
for i in range(n):
    res+= 'A' if sign else 'B'
    cur-=1
    if p[i]=='1':
        if sign:
            a+=1
        else:
            b+=1
        cur+=1
    elif p[i]=='-1':
        if sign:
            a=max(a-1,1)
        else:
            b=max(b-1,1)
        cur-=1
    if cur<=0: # 出现负数直接切换
        if sign:
            cur = b
            sign = False
        else:
            cur = a
            sign = True
print(res)

第三题:模拟

应该是数论相关的优化,不是正统计算机,没学过,暴力拿点分结束了

q = int(input())
res = [0]*q
MOD = 1000_000_007
for i in range(q):
    ans = 0
    n,k,x = (int(i) for i in input().split(' '))
    factor = 1
    while n>0:
        cur = x%k
        ans += (k-cur)*factor
        factor*=k
        x//=k
        n-=1
    res[i] = ans%MOD
for i in res:
    print(i)

统计看看各位佬的成绩

#钉钉##钉钉笔试##暑期实习##暑期实习笔试##钉钉暑期##投票#
 类似资料: