滴滴出行2018编程题

【笔试真题记录】2023滴滴编程第二题 现在有n个由大写英文字符组成的字符串,且这些字符串不会互相包含,也不会相等。现在想知道有哪些字符串满足如下条件。设满足条件的字符串为S,存在其他的两个字符串拼接在一起后,能通过去除一个非空前缀和一个非空后缀变为字符串S。这两个用于拼接的字符串可以是同一个,也可以为S。第一行一个正整数m表示符合条件的字符串数量。接下来输出m行,每行一个由大写英文字符组成的字符串,表示这个字符串符合条件。按照字典序升序输出。第一行一个正整数n,表示字符串的个数。接下来n行,每行输入一个由大写英文字符组成的字符串。 阅读详情

[编程题] CIDR去重

时间限制:1秒

空间限制:65536K

无类别域间路由(CIDR)是一个用于对IPV4地址进行分类表述的方法。CIDR 路由描述的IP地址组的子网mask长度是可变长度, 例如10.0.0.0/22 表示前22位和10.0.0.0相同的网络地址都被覆盖, 22包含了10.0这前两个字段(0-7位,8-15位)和第三个字段的前6位(16-21,即0b000000**), 涵盖了 10.0.0.*, 10.0.1.*, 10.0.2.*, 10.0.3.* 四组ip地址. 在此前提下请实现IP网络中的一个常用的去重操作: 给定一系列 CIDR 路由地址, 其中没有完全等价的路由, 去掉被重复表示的 CIDR 路由, 即去掉已经被其他CIDR路由表示覆盖的路由地址. 例如 10.0.1.1/32 已经被 10.0.0.0/22覆盖了, 如果路由列表中已经有了后者, 就可以去掉前者. 

输入描述:

k+1行, k表示输入的CIDR路由个数
第1行:表示路由个数k
第2~k+1行: 表示一个CIDR路由, 形如 x.x.x.x/x

输出描述:

n+1行, n表示去重后剩下的CIDR路由个数
第1行:n
第2~n+1行: 表示一个去重后的CIDR路由, 输出按照输入顺序

输入例子1:

13
192.168.0.0/16
172.24.96.17/32
172.50.137.225/32
202.139.219.192/32
172.24.68.0/24
192.183.125.71/32
201.45.111.138/32
192.168.59.211/32
192.168.26.13/32
172.24.0.0/17
172.24.5.1/32
172.24.68.37/32
172.24.168.32/32

输出例子1:

7
192.168.0.0/16
172.50.137.225/32
202.139.219.192/32
192.183.125.71/32
201.45.111.138/32
172.24.0.0/17
172.24.168.32/32
#include<bits/stdc++.h>
using namespace std;

struct ipaddr{
    string ip;
    string front;
    bool hided; 
    ipaddr() {ip = front = ""; hided = false;}
};

int str2num(string str) {
    int res = 0;
    for (char c : str) {
        res *= 10;
        res += c - '0';
    }
    return res;
}

void divide(ipaddr a, int arr[]) {
    string tmpstr;
    int len = a.ip.length();
    int i, j, cnt = 0;
    for (i = 0; i < len; ++i) {
	tmpstr = "";
        tmpstr += a.ip[i];
        for (j = i + 1; j < len && a.ip[j] != '.'; ++j) {
            tmpstr += a.ip[j];
        }
        arr[cnt++] = str2num(tmpstr);
        i = j;
    }
}

string dec2bin(int n) {
    string res;
     if (n == 0) {
	res = "00000000";
	}
    while (n) {
        res += n % 2 + '0';
        n /= 2;
    }
    for (int i = res.length(); i < 8; ++i) {
	res += '0';
    }
    reverse(res.begin(), res.end());
    return res;
}

int ishided(ipaddr a, ipaddr b) {
    int arrofa[4], arrofb[4];
    int frontofa, frontofb;
    divide(a, arrofa);
    frontofa = str2num(a.front);
    divide(b, arrofb);
    frontofb = str2num(b.front);
    string astr, bstr, aa, bb;
    astr = dec2bin(arrofa[0]) + dec2bin(arrofa[1]) 
            + dec2bin(arrofa[2]) + dec2bin(arrofa[3]);
    bstr = dec2bin(arrofb[0]) + dec2bin(arrofb[1]) 
            + dec2bin(arrofb[2]) + dec2bin(arrofb[3]);
    aa = astr.substr(0, frontofa);
    bb = bstr.substr(0, frontofb);
    int len = min(frontofa , frontofb);
    int i;
    for (i = 0; i < len; ++i) {
        if (aa[i] != bb[i])
            break;
    }
    if (i == len) {
	if (frontofa < frontofb)
	return 1;
	if (frontofa > frontofb)
	return -1;
    }
    return 0;//no hide
}

int rmdulp(ipaddr arr[], int k) {
    int n = k;
    int hide = 0;
    for (int i = 0; i < k; ++i) {
	if (arr[i].hided)
		continue;
        for (int j = i + 1; j < k; ++j) {
            if (arr[j].hided) {
                continue;
            }
		hide = ishided(arr[i], arr[j]);
            if (hide == 1) { 
                arr[j].hided = true;
                n--;
	    } else if (hide == -1) {
		arr[i].hided = true;
		n--;
	    }
        }
    }
    return n;
}

int main() {
    int k, n, npos;
    cin >> k;
    string s;
    ipaddr arr[k];
    for (int i = 0; i < k; ++i) {
        cin >> s;
        npos = s.find('/');
        arr[i].ip = s.substr(0, npos);
        arr[i].front = s.substr(npos + 1);
    }
    cout << rmdulp(arr, k) << endl;
    for (int i = 0; i < k; ++i) {
        if (!arr[i].hided) {
            cout << arr[i].ip << '/' << arr[i].front << endl;
        }
    }
    return 0;
}

 

[编程题] 幂运算

时间限制:1秒

空间限制:131072K

给定两个数R和n,输出R的n次方,其中0.0<R<99.999, 0<n<=25

输入描述:

多组测试用例,请参考例题的输入处理 输入每行一个浮点数 R 其中0.0 < R <99.999, 一个整数 n 其中0 < n <=25

输出描述:

输出R的n次方

输入例子1:

95.123 12 0.1 1

输出例子1:

548815620517731830194541.899025343415715973535967221869852721 0.1
//取整 幂运算 除10的幂次方
#include<bits/stdc++.h>
using namespace std;

string addstr(string a, string b) {
    int lena = a.length();
    int lenb = b.length();
    int i, j, tmp, addbit = 0;
    string res;
    for (i = j = 0; i < lena || j < lenb; ++i, ++j) {
	tmp = 0;
	if (i < lena) {
        	tmp = a[i] - '0';
	} 
	if (j < lenb) {
		tmp += b[i] - '0';
	}
	tmp += addbit;
        addbit = tmp / 10;
        res += tmp % 10 + '0';
    }
    if (addbit) {
	res += '1';
    }
    return res;
}

string multistr(string a, string b) {
    int i, j, tmp, addbit = 0;
    int lena = a.length();
    int lenb = b.length();
    string tmpstr, res = "0";
    for (i = lena - 1; i >= 0; --i) {
	for (j = 1; j < lena - i; ++j)
		tmpstr += '0';
        for (j = lenb - 1; j >= 0; --j) {
            tmp = (a[i] - '0') * (b[j] - '0') + addbit;
            addbit = tmp / 10;
            tmpstr += tmp % 10 + '0';
        }
	if (addbit) {
		tmpstr += addbit + '0';
	}
	addbit = 0;
        res = addstr(res, tmpstr);
        tmpstr = "";
    }
    reverse(res.begin(), res.end());
    return res;
}

string spown(string s, int n) {
   string res = s;
   for (int i = 1; i < n; ++i) {
	res = multistr(res, s);
    }
    return res;
}

int main() {
    string r;
    int i, n;
    cin >> r >> n;
    int len = r.length();
    int npos = r.find('.');
    int div = 0;
    string s;
    if (npos > -1) {
	for (i = len - 1; i > npos; --i) {
		if (r[i] != '0') 
			break;
	}
	r = r.substr(0, i + 1);
        s = r.substr(0, npos);
        s += r.substr(npos + 1);
        s = spown(s, n);
	div = i - npos;
	int slen = s.length();
	if (slen <= n) {
		cout << "0.";
		for (i = 0; i < n - slen; ++i)
			cout << '0';
        	cout << s << endl;
	} else {
		cout << s.substr(0, slen - div * n) << ".";
		cout << s.substr(slen - div * n) << endl; 
	}
    } else {
        s = r;
	s = spown(s, n) ;
        cout << s << endl;
    }	
    return 0;
}

 

智能交互技术研发工程师笔试复盘:从NLP到出行场景 智能交互是融合自然语言处理、语音识别和机器学习的前沿方向,其核心在于让机器理解用户意图并完成相应动作。该领域技术演进遵循从传统序列模型到深度学习注意力机制的路径,通过意图识别、槽位填充和对话管理等模块实现人机协作。在出行服务中,这类技术被广泛应用于智能客服、语音叫车、地址解析等真实场景,对工程师的算法基础与业务理解提出很高要求。针对智能交互岗位的笔试复盘显示,系统掌握机器学习原理、NLP经典模型和对话系统设计,并将知识与具体业务结合,是提升竞争力的关键。 阅读详情

相关推荐

( 滴滴出行2017秋招笔试真题-编程题汇总.pdf )

( 滴滴出行2017秋招笔试真题-编程题汇总.pdf ) ( 滴滴出行2017秋招笔试真题-编程题汇总.pdf ) ( 滴滴出行2017秋招笔试真题-编程题汇总.pdf )

高频编程考题:将有序数组转换为二叉搜索树(简单)

要将一个升序排列的整数数组转换为一棵平衡二叉搜索树(BST),我们可以利用递归方法构建树。这是因为一个平衡的BST的中序遍历应该是升序排列的,因此我们可以通过递归的方式选择中间的元素作为根节点,递归构建左右子树,从而保持平衡。:由于数组已经是升序排列的,选择中间元素作为根节点可以保证树的高度平衡。[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。排列,请你将其转换为一棵 平衡 二叉搜索树。

LFY5678的博客 1126

未来计算的革命:探索存算一体芯片的潜力与挑战

未来计算的革命:探索存算一体芯片的潜力与挑战

jtwqwq的博客 1610

Leetcode - 24 - 两两交换链表中的节点

Leetcode - 24 - 两两交换链表中的节点Java实现题目以及题解。

RockyBlogs 337

光栅衍射有入射角时_偏振光栅的衍射角度及衍射效率测量

偏振光栅是一种基于入射光的偏振态实现选择性分光的衍射光学元件,衍射角度取决于光栅线数。通过控制入射光的偏振态,偏振光栅能够调控正一阶和负一阶之间的能量分布。当入射光束偏振态不同时,偏振光栅具有不同的衍射特性。理想的偏振光栅:当入射光为右旋圆偏振光时,只有+1级衍射光,衍射光为左旋圆偏振光。当入射光为左旋圆偏振光时,只有-1级衍射光,衍射光为右旋圆偏振光。当入射光为非圆偏振光时,偏振光栅同...

weixin_39552768的博客 6003

CTransformers: 高效的Python语言模型绑定库

CTransformers是一个为C/C++实现的Transformer模型提供Python绑定的开源库。它基于GGML库构建,旨在为开发者提供一种高效且易用的方式来在Python中使用各种流行的语言模型。支持多种流行的语言模型,如GPT-2、LLaMA、Falcon等提供统一的简单API接口支持GPU加速(CUDA和Metal)与Hugging Face Transformers和LangChain集成支持流式输出和嵌入计算。

helloaiworld的博客 1267

模拟打车测试用例设计点

1.打开app后是否可以精确定位到自己的位置 2.附近的建筑物以及店面是否定位正确 3.选择打车模式(快车,顺风车)价位是否计算正确 4.选择打车模式(快车,顺风车)预计时间是否计算正确 5.发起订单后附近的司机是否可以接收到我发起的订单 6.发起订单后司机看到的到达我附近的路线是否正确 7.如果多个司机同时接单怎么处理 8.接单后显示的司机信息是否与数据库内的数据相符 9.司机接单后看到的顾客信息是否与与数据库内的数据相符 10.如果有司机接单成功后是否关闭订单避免其他司机接单 11.车内是否有平台录音

q1011334002的博客 8421

华硕ROG枪神双系统实战:Ubuntu安装避坑指南

本文是华硕ROG枪神笔记本安装Ubuntu双系统的详细避坑指南。针对其独特的硬件与BIOS设计,文章核心解决了VMD控制器导致硬盘无法识别、驱动兼容性等关键难题,并提供了从BIOS设置、分区方案到安装后驱动配置与性能调优的一站式解决方案,帮助用户实现稳定的双系统体验。

raspberrypi5的博客 545

2024年最全剑指Offer——滴滴笔试题+知识点总结,web本地开发

四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~祝大家都能收获大厂offer~开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】篇幅有限,仅展示部分内容。

2301_82243710的博客 1369

遥感生态指数(RSEI)——四个指数的计算

遥感生态指数是在4个生态指数的基础上通过主成分变换得出的一个评价生态环境质量的指标。因此,第二部分就是要分别计算出这4个指数的值。 ①首先,是绿度指数的计算,一般用归一化植被指数(NDVI) NDVI=(NIR-Red)/(NIR+Red) 在Bandmath工具中输入NDVI计算公式 (float(b4-b3))/(b4+b3) 其中,b3、b4分别是红波段和近红外波段 ②其次,是湿度计算。 WET = c1B1 + c2B2 + c3B3...

qq_41978498的博客 9万+

MSBlock赋能C2f模块,让目标检测在轻量化与精度间双向突破

在文件夹下新建,将上述MSBlock和C2f_MS类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义模块。

LXY_LOVE36的博客 143

滴滴出行2018内推编程题

滴滴出行2018内推编程题

薛倩的专栏 1993

手把手教你学Simulink——基于全桥 LLC 谐振变换器的双向 DC-DC 建模与仿真

本文详细介绍了基于Simulink的双向全桥LLC谐振变换器建模与仿真方法。内容涵盖:1)LLC谐振变换器背景与双向化挑战;2)系统架构设计及关键数学推导(FHA增益分析、双向控制逻辑);3)Simulink建模步骤(功率级搭建、PWM生成、同步整流实现);4)仿真结果分析(正向/反向工作验证、ZVS特性);5)工程实践建议(增益微调、代码生成与HIL测试)。通过手把手教学,帮助读者掌握950V↔48V双向LLC变换器的完整设计流程,实现高效率能量双向流动的同时保持软开关特性,适用于储能系统、车载充电等应用

MHD0815的博客 175

给定两个数r和n_输出r的n次方 java_滴滴出行2018编程题

[编程题] CIDR去重时间限制:1秒空间限制:65536K无类别域间路由(CIDR)是一个用于对IPV4地址进行分类表述的方法。CIDR 路由描述的IP地址组的子网mask长度是可变长度, 例如10.0.0.0/22 表示前22位和10.0.0.0相同的网络地址都被覆盖, 22包含了10.0这前两个字段(0-7位,8-15位)和第三个字段的前6位(16-21,即0b000000**), 涵盖了 ...

weixin_39524425的博客 181

复合材料仿真PAM-COMPOSITE 全工艺案例实操参数模板

复合材料仿真PAM-COMPOSITE 全工艺案例实操参数模板

源代码杀手的博客 274

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

滴滴系统开发工程师校招笔试全解析:考点、策略与避坑指南

校招笔试是通往互联网大厂的关键一步,系统开发工程师岗位尤其重视算法功底、操作系统、网络与数据库等基础知识的综合运用。笔试通过选择题、简答题和编程题,多维度考察候选人的逻辑思维、编码规范与工程实践能力,其本质是筛选具备系统性解决问题能力的技术人才。对于出行平台这类高并发业务场景,扎实的系统知识能够帮助工程师快速定位性能瓶颈、设计稳定高效的架构。以滴滴出行2018校园招聘系统开发工程师笔试为实例,可深入拆解常见考点、复习重点与答题策略,并获取网申与在线笔试中的避坑经验,帮助应届生建立科学的备考路径。无论目标岗位

weixin_30582943的博客 311

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

滴滴2018秋招编程题

滴滴 2018秋招 编程题

peaktravel的专栏 581

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

滴滴校招测试开发笔试解析:从测试思维到编程题备考指南

软件测试的核心不只是验证功能正确,更在于发现系统在极端条件下如何失效。测试开发工程师这一岗位,要求从业者兼具扎实的编程功底与敏锐的测试思维,能够在代码实现中主动考虑边界情况与异常路径。在校招笔试环节,测试开发岗的题目往往表面考察算法与基础,实则检验候选人对质量保障的理解深度。从计算机网络、数据结构到数据库原理,再到滑动窗口、区间合并等典型编程题,每一类题型都在筛选具备工程化测试意识的人才。同时,测试用例设计、状态机校验等场景化问题,也直接映射出日常测试工作中的核心方法论。本文以滴滴出行2018校园招聘测试开

weixin_28831461的博客 232

滴滴出行校招系统开发工程师笔试题型解析与备考策略

计算机基础知识是互联网技术岗位笔试的根基,而数据结构与算法则是其中最具区分度的环节。系统开发工程师的日常工作涉及订单调度、消息推送等高并发业务场景,这决定了笔试不仅考察编程能力,还覆盖操作系统、网络、数据库等基础理论。本文以滴滴出行2018校招系统开发工程师笔试卷为样本,系统拆解了行测逻辑题、专业单选题、编程题与场景设计题的分布规律与考察重点,并结合附近司机匹配、最短路径规划、订单系统设计等出行场景典型题目,给出了结构化的答题思路与备考计划。对于正在准备大厂校招的同学,这份解析可以帮助你理解笔试背后的筛选逻

weixin_30280259的博客 277

滴滴CV岗笔试复盘:题型考点与图像处理编程题实战解析

计算机视觉作为人工智能的核心方向,依赖图像处理、特征提取与深度学习模型解决真实场景问题。滤波、边缘检测、目标检测等基础原理,构成了视觉算法工程师必备的知识体系。在工程实践中,不仅需要理解算法理论,更要在限时环境下快速实现和调试,这种能力正是技术笔试的考察重点。以滴滴出行计算机视觉研发工程师校园招聘笔试为例,其卷面涵盖数学基础、图像处理、机器学习及编程题,全面检验候选人的综合素养。本文还原了笔试的题型分布、高频考点,并通过一道连通域计算的编程题,演示从审题到BFS实现的完整过程,同时给出备战视觉算法岗位的复习

weixin_29053073的博客 266

2018滴滴校招系统开发工程师笔试复盘:考点与避坑指南

在互联网校招中,笔试是筛选候选人技术功底的关键环节。系统开发工程师岗位要求候选人对数据结构与算法、操作系统、计算机网络、数据库等基础理论有扎实掌握,并能运用工程思维解决实际问题。大厂笔试往往通过选择题考察知识广度,通过编程题检验代码能力与边界处理意识,这背后是一套完整的工程能力模型。从滑动窗口、动态规划到二叉树遍历,经典算法变体频繁出现,而在线OJ平台的输入处理、编译环境语言版本、时间分配等细节也直接影响成绩。以滴滴2018年校招笔试为样本,梳理核心考点分布与编程题实战思路,总结考场避坑清单,帮助求职者建立

weixin_28702613的博客 280

滴滴系统开发岗校招笔试全解析:题型、策略与避坑指南

高并发系统设计是后端开发的核心能力之一,它涉及负载均衡、缓存、消息队列等基础原理,直接决定了系统在峰值流量下的稳定性。在实际工程中,网约车订单分配、位置上报等场景对实时性和一致性要求极高,因而成为校招笔试的高频考核方向。本文以滴滴系统开发工程师秋招笔试为样本,详细拆解了题型结构、算法高频模型、计算机网络与操作系统考点,以及场景题作答策略,并给出了三小时时间分配与临场应对建议,帮助候选人在有限时间内最大化得分,也为备战同类岗位的同学提供了可复用的复习框架。

weixin_33277412的博客 230

滴滴出行2018校园招聘内推笔试-Linux内核工程师

1 编程题 1. 整数无序数组求第K大数 给定无序整数序列,求其中第K大的数,例如{45,67,33,21},第2大数为45 输入描述: 输入第一行为整数序列,数字用空格分隔,如:45 67 33 21 输入第二行一个整数K,K在数组长度范围内,如:2 输出描述: 输出第K大的数,本例为第2大数:45 题目分析:首先对数组排序,然后找到第k大的数。 代码实现: #include...

万丈高楼平地起 1242

2018春季实习生面经

不多说,直接进入正题,我从1月12号开始面试,期间面试了4家公司,滴滴,今日头条,百度,网易有道。其中今日头条面试两次,第二次才通过。网易有道也过了。其他两家没过,后面我会具体提供面试题型(面试完基本我能想起来的,我都记录在手机上了)。最后面我会写写找实习的过程以及内推网站。 滴滴: 2018/1/12 平台技术部门 不限语言 (实习期间用go,go基本是后端服务器主流语言了) 我比较熟悉...

cuixuange的博客 2981

2018滴滴校招(秋招)内推笔试编程题题解

package 内推笔试;import java.util.Arrays; import java.util.Scanner;/** * Created by liuming on 2017/8/26. */ public class 滴滴 { /** * 给定整数序列求最大连续字串和 * <p> * 问题描述: * 给定无序正数序列,求连续字串最大

小明同学爱思考 3214
上一篇: 复杂性
下一篇: 牛客编程马拉松第一天
凝视深空
博客等级 码龄11年 16粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值