7.13字节跳动模拟面试

2023-10-26

GDB调试常见命令

进入GDB
取消联系
插入端点

gdb)help:查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h
(gdb)run:重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r
(gdb)start:单步执行,运行程序,停在第一执行语句
(gdb)list:查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数),简写l
(gdb)set:设置变量的值
(gdb)next:单步调试(逐过程,函数直接执行),简写n
(gdb)step:单步调试(逐语句:跳入自定义函数内部执行),简写s
(gdb)backtrace:查看函数的调用的栈帧和层级关系,简写bt
(gdb)frame:切换函数的栈帧,简写f
(gdb)info:查看函数内部局部变量的数值,简写i
(gdb)finish:结束当前函数,返回到函数调用点
(gdb)continue:继续运行,简写c
(gdb)print:打印值及地址,简写p
(gdb)quit:退出gdb,简写q
(gdb)break+num:在第num行设置断点,简写b
(gdb)info breakpoints:查看当前设置的所有断点
(gdb)delete breakpoints num:删除第num个断点,简写d
(gdb)display:追踪查看具体变量值
(gdb)undisplay:取消追踪观察变量
(gdb)watch:被设置观察点的变量发生修改时,打印显示
(gdb)i watch:显示观察点
(gdb)enable breakpoints:启用断点
(gdb)disable breakpoints:禁用断点
(gdb)x:查看内存x/20xw 显示20个单元,16进制,4字节每单元
(gdb)run argv[1] argv[2]:调试时命令行传参
(gdb)set follow-fork-mode child#Makefile项目管理:选择跟踪父子进程(fork()
说一说C++ 中哪些函数不能是虚函数?

构造函数
友元函数

普通函数
普通函数(非成员函数)只能被overload,不能被override,而且编译器会在编译时绑定函数。
多态的运行期行为体现在虚函数上,虚函数通过继承方式来体现出多态作用,顶层函数不属于成员函数,是不能被继承的
构造函数
因为构造函数本来就是为了明确初始化对象成员才产生的,然而virtual function主要是为了在不完全了解细节的情况下也能正确处理对象。另外,virtual函数是在不同类型的对象产生不同的动作,现在对象还没有产生,如何使用virtual函数来完成你想完成的动作。
内联成员函数
内联函数就是为了在代码中直接展开,减少函数调用花费的代价,虚函数是为了在继承后对象能够准确的执行自己的动作,这是不可能统一的。
静态成员函数
静态成员函数对于每个类来说只有一份代码,所有的对象都共享这一份代码,他也没有要动态邦定的必要性。不能被继承,只属于该类。
友元函数
C++不支持友元函数的继承,对于没有继承特性的函数没有虚函数的说法。友元函数不属于类的成员函数,不能被继承。

说一说STL 中有哪些常见的容器

vector,set,map,queue,stack,list
顺序式容器:array、vector、list、forward list、deque、heap
关联式容器:map、set、multimap、multiset、unordered_set、unordered_map、unordered_multiset、unordered_multimap

给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。
class Solution {
public:
    /**
     * min edit cost
     * @param str1 string字符串 the string
     * @param str2 string字符串 the string
     * @param ic int整型 insert cost
     * @param dc int整型 delete cost
     * @param rc int整型 replace cost
     * @return int整型
     */
    int minEditCost(string str1, string str2, int ic, int dc, int rc) {
        // write code here
        // 将 str1 转换成 str2 所使用的最少操作数 
        
        int m = str1.length();
        int n = str2.length();
        
        // 特殊情况的处理
	    if (m == 0) return n*ic;
	    if (n == 0) return m*dc;
        
        // ----- 创建二维数组并初始化 -----
        vector<vector<int>> cost(m+1, vector<int>(n+1));
        for (int i = 0; i <= m; ++i) cost[i][0] = i*dc;
        for (int j = 0; j <= n; ++j) cost[0][j] = j*ic;
        
        // ----- 填充二维数组 -----
        char firstChar;
        int costTmp;  // 相等则代价为0; 不相等代价为 replaceCost
        for (int i = 1; i <= m; ++i) {
            firstChar = str1[i - 1];
            for (int j = 1; j <= n; ++j) {
                costTmp = (firstChar == str2[j - 1]) ? 0 : rc;
                cost[i][j] = min(min(cost[i - 1][j] + dc, cost[i][j - 1] + ic), cost[i - 1][j - 1] + costTmp);
            }
        }
        
        return cost[m][n];
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7.13字节跳动模拟面试 的相关文章

  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两

随机推荐

  • 【论文精读】The Missing Link: Finding label relations across datasets

    一 背景 概要 和之前其他论文工作不同的是 论文的主要目的是探究不同数据集间标签的关系 而不是将其合并 论文中提到的关系是identity parent child overlap 为了探究这些关系 提出了几种方法 基于language 基
  • 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程

    一 前言 我最近在做一个基于图像融合的目标检测工程 我经常用matlab去研究和创新新型的图像融合算法 因为matlab有着python所不可比拟的数据可视化功能和大量的滤波分解框架包 在目标检测等涉及到神经网络的程序编写上 python又
  • 机器学习

    学习目标 了解什么是EM算法 知道极大似然估计 知道EM算法实现流程 一 初识EM算法 EM算法也称期望最大化 Expectation Maximum 简称EM 算法 它是一个基础算法 是很多机器学习领域算法的基础 比如隐式马尔科夫算法 H
  • 2、TCP、多进程并发、多线程并发(linux网络编程)

    三次握手和四次挥手的过程都是在内核实现的 三次握手 通信的时候不再需要SYN标识位了 只有在请求连接的时候需要SYN标识位 传输数据的时候的随机序号seq就是最近一次对方发送给自己的ACK的随机序号值 而发给对方的ACK就是上次刚刚发给对方
  • JDK安装配置教程

    JDK简介 Java Development Kit JDK 是 Sun 公司 已被 Oracle 收购 针对 Java 开发员的软件开发工具包 自从 Java 推出以来 JDK 已经成为使用最广泛的 Java SDK Software d
  • Windows10下安装Git

    Git是一个开源的分布式版本控制系统 可以有效 高速的处理从很小到非常大的项目版本管理 具体安装步骤如下 第一步 先从官网下载最新版本的Git 官网地址 https git scm com downloads 点击上图中表示的地方进行下载
  • 如何修改安卓系统为自己的云服务器,安卓手机改装云服务器

    安卓手机改装云服务器 内容精选 换一换 本节操作介绍华为云上云服务器的跨账号跨区域迁移 建议采用镜像迁移方式 服务器迁移的常见场景与常用的迁移方式请参考迁移的背景知识 跨账号跨区域迁移的方法请参考方案介绍常见的服务器迁移场景包括物理服务器与
  • 【论文精读】Grounded Language-Image Pre-training(GLIP)

    一 背景 https arxiv org abs 2112 03857 https github com microsoft GLIP 这篇论文做的任务是phrase grounding 属于visual grounding的一种 phra
  • MySQL 修改默认值

    alter TABLE tableName alter COLUMN columnName set default defaultValue
  • 电阻式湿度传感器原理

    电阻式湿度传感器是利用湿敏元件的电气特性 如电阻值 随湿度的变化而变化的原理进行湿度测量的传感器 湿敏元件一般是在绝缘物上浸渍吸湿性物质 或者通过蒸发 涂覆等工艺制各一层金属 半导体 高分子薄膜和粉末状颗粒而制作的 在湿敏元件的吸湿和脱湿过
  • 大模型应用落地实践:2大路径、3大痛点、5大革命、6大预判!

    省时查报告 专业 及时 全面的行研报告库 省时查方案 专业 及时 全面的营销策划方案库 免费下载 2023年8月份全网热门报告合集 ChatGPT提词示例 让你的ChatGPT聪明100倍 超百页干货资料 AI应用的难点 痛点与未来 202
  • 双端队列,以顺序表实现双端队列,在队头和队尾添加删除元素

    include
  • opencv之kmeans原理与分割实例

    opencv之K Means原理与实现方法 C 和python版本 KMeans原理 今天记录一下opencv中kmeans中的原理以及图像分割的一个实例 K Means是对数据进行分类的算法 属于无监督学习的一种 首先需要确定对图像进行类
  • 关于QT多界面切换

    1 新增一窗体文件 会自动生成ui1 cpp ui1 h ui1 ui这三个文件 可以进行设计 绑定ui中的控件与数据模型 比如ui gt lable setText string 2 再增加一个UI文件 ui2 也会生成相应的 同上 3
  • 原本是list类型,pandas读入后变成str、obejct等其他的类型,恢复成list,并进行数据炸裂explode操作

    文章目录 本文章拟解决问题 不是这些问题请绕路 一 需求 二 操作步骤 1 从数据库中读入数据 读入的原始数据如图 2 将数据炸裂 将JSON列表拆分 一个JSON对象一行 1 具体的代码过程 踩坑 因为pandas读入数据 将 JSON列
  • XTUOJ 1176 I Love Military Chess(模拟)

    I Love Military Chess Accepted 45 Submit 141 Time Limit 1000 MS Memory Limit 65536 KB 题目描述 陆军棋 又称陆战棋 简称军棋 是中国近代的一种两人棋类 设
  • Niantic CEO访谈:元宇宙、AR眼镜和公司发展史

    Meta宣布转型元宇宙社交平台后 人们一度觉得VR是元宇宙的未来 与此同时 一些AR公司表示不服 认为AR在元宇宙的布局更超前 尤其是Snap Niantic等较成熟的移动端AR公司 对于元宇宙有各自不同的看法和规划 比如 此前Nianti
  • 下载、安装IntelliJ IDEA

    文章目录 一 下载IntelliJ IDEA 二 安装IntelliJ IDEA 三 配置主题与插件 1 设置界面主题 2 配置缺省插件 3 配置特色插件 四 设置IntelliJ IDEA 1 设置编译器用鼠标滚鼠来缩放字号 2 设置编辑
  • uml交互图

    交互图用来描述系统中的对象是如何进行相互作用的 即一组对象是如何进行消息传递的 当交互图建模时 通常既包括对象 每个对象都扮演某一特定的角色 又包括消息 每个消息都代表对象之间的通信活动 并导致一定的动作发生 关键字 对象 顺序 消息 顺序
  • 7.13字节跳动模拟面试

    GDB调试常见命令 进入GDB 取消联系 插入端点 gdb help 查看命令帮助 具体命令查询在gdb中输入help 命令 简写h gdb run 重新开始运行文件 run text 加载文本文件 run bin 加载二进制文件 简写r