文远知行笔试 文远知行笔试题 0414

笔试时间:2024年04月14日

历史笔试传送门:2023秋招笔试合集

第一题

输入描述

给定一个 32 位的符号整数,按位反转,输出其反转的结果。

输出描述

其反转的结果。

样例输入

123

样例输出

321

参考题解

模拟

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

include <bits/stdc++.h>

const int inf = 0x3f3f3f3f;
using i64 = long long;

void solve() {
 int x;
 std::cin >> x;
    int rev = 0;
    while (x != 0) {
        if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
            return 0;
        }
        int digit = x % 10;
        x /= 10;
        rev = rev * 10 + digit;
    }
    std::cout << rev << "\n";
}
    

int main() {
    std::cin.sync_with_stdio(false);
    std::cin.tie(0);
    
    solve();

    return 0;
}

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

import java.util.Scanner;

public class Main {
    public static final int INF = 0x3f3f3f3f;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        scanner.close();
        
        int rev = 0;
        while (x != 0) {
            if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) {
                return;
            }
            int digit = x % 10;
            x /= 10;
            rev = rev * 10 + digit;
        }
        System.out.println(rev);
    }
}

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

def solve():
    x = int(input())
    rev = 0
    while x != 0:
        if rev < -2**31 // 10 or rev > 2**31 // 10:
            return
        digit = x % 10
        x //= 10
        rev = rev * 10 + digit
    print(rev)

if __name__ == "__main__":
    solve()

第二题

题目

给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A-Z字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在1个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为M 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的最短时间。

输入描述

第一行为整数N(1 <= N<= 10000),代表共有多少个任务;第二行为长度为 N 的字符串T,代表每个任务的种类; 第三行为 M (0<= M<=100),代表相同任务的冷却时间。

输出描述

完成所有任务的最短时间。

样例输入

N=2

T="AB"

M=2

样例输出

2

参考题解

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

#include <bits/stdc++.h>

const int inf = 0x3f3f3f3f;
using i64 = long long;

void solve() {
    int n, m;
    std::string s;
    std::cin >> n >> s >> m;
    std::vector<int> count(26);
    for (auto c : s) 
        ++count[c - 'A'];
    int max_t = *std::max_element(count.begin(), count.end());
    int cnt = 0;
    for (auto&&num : count) 
        cnt += (num == max_t);
    std::cout << std::max(n, (max_t - 1) * (m + 1) + cnt) << "\n";
}

int main() {
    std::cin.sync_with_stdio(false);
    std::cin.tie(0);
    
    solve();

    return 0;
}

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

import java.util.*;

public class Main {
    public static final int INF = 0x3f3f3f3f;

    public static void main(String[] args) {
  

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024 BAT笔试合集 文章被收录于专栏

持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。

全部评论

相关推荐

​&nbsp;时光如白驹过隙,离我开始写书转眼已过将近两年,回顾一下,还是有些话想说,就在此絮絮叨叨吧。年轻人总得有点梦想我在工作第4年,想着要去写本C++书籍,于是我就主动联系了人民邮电出版社的编辑,给他们发去了我写的关于C++对象模型详解相关的博客,运气很好,人民邮电的编辑认为博客还不错,可以出版。于是我就直接冲了。现在想来,无知者无畏!但年轻人总得要去拼一下,要不然你不会知道自己有多大的潜力。如果你想干什么事了,那就去干,不要怕别人说什么。《C++对象模型详解》断断续续写了将近7个月,加上编辑变动,导致现在才上架和真正的出版,拿到纸质书,过程确实存在几多艰辛和困难。但拿到书的那一刻,我觉得是值得的。关于C++,网上普遍存在的声音是&nbsp;需要多年经验才算登堂入室,但我不这样想。我认为,你有兴趣,愿意钻研,三年或者五年其实可以算个老手的。语言类的东西远远没有想象中的那么难。真正难的是一直坚持学习的能力(持续学习)。学C++至少能让我一直保持着学习的状态,跟随着标准不断的前行,对我而言,这个才是这门语言的意义。这本书毕竟是在我工作第4年到第5年之间完成的,C++的知识也确实很多,各种边边角角,我知道自己会存在部分错误,我也欢迎有人指出,甚至批评。关于这本书在我刚开始工作的前4年,我认为也基本看完了市场上经典的C++书籍(C++&nbsp;template,&nbsp;C++&nbsp;Concurrency&nbsp;in&nbsp;Action等等)。但是所有这些书籍都未讲解gcc编译器中C++对象模型的实现,异常的实现等。而恰巧一次业务故障同gcc的C++虚表相关,因此我便想搞明白这个虚表是不是同深度探索C++对象模型一书中所描述的一样。为此,我重读了深度探索C++对象模型&nbsp;并用gdb调试相应的实现,然后便产生了这本书。我的本意有三:证明自己热爱cpp在cpp这个世界中留下点什么(理想主义)分享知识,帮助更多的人了解cpp下面说回读这本书的前置条件:这本书会涉及到汇编和链接的知识,所以最好是要度过深入理解计算机系统第三版程序员的自我修养链接装载与库这两本书。当然,你肯定也要有一定的cpp基础。此外,本书会用到一些简单的gdb,所以你也需要熟悉基础的gdb使用,譬如如何使用gdb查看虚表等,具体可以参考https://github.com/hellogcc/100-gdb-tips/blob/master/src/show-vtbl-content.md关于内容,可以部分参考我的这个专栏深入理解C++对象模型&nbsp;内容会比这个专栏更多,也会矫正更多。很遗憾的是,出版社不让放参考文献在书中,所以后面我会计划把参考文献都放在这里,如果需要也可以看。碎语我曾经一直想有机会能从事数据库引擎,编译器或者操作系统相关的岗位。最终我也确实搞到了跟编译器相关的岗位,目前在小米搞虚拟机。接触一个新领域,充满的是好奇和兴奋,当然也有忙碌。没得办法一直更新。如果你想好了自己未来感兴趣的方向,那就去坚持吧,就算现在没有,未来也许有机会就会实现。最后,如果你在京东和淘宝等地方买到了这本书,发现了问题,也麻烦反馈给我,也欢迎批评。祝大家都能享受到学习带来的乐趣,都能有美好的未来!​
点赞 评论 收藏
分享
评论
点赞
16
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务