【每日一题 2023-2-16】华为OD机试真题 简易内存池 2(Python)

梦想橡皮擦
Python领域优质创作者
博客专家认证
2023-02-16 13:52:46

华为OD机试

  • 简易内存池 2
  • 题目
  • 输入
  • 输出
  • 示例一
  • 输入
  • 输出
  • 示例二
  • 输入
  • 输出
  • 说明

简易内存池 2

题目

请实现一个简易内存池

根据请求命令完成内存分配和释放 ,内存池支持两种操作命令

REQUESTRELEASE 其格式为
REQUEST=请求的内存大小 表示请求分配指定大小内存

  • 如果分配成功,返回分配到的内存首地址
  • 如果内存不足,或指定的大小为零则输出error

RELEASE=释放的内存首地址 表示释放掉之前分配的内存

释放成功无需输出
如果释放不存在的首地址
则输出 error

注意:

  1. 内存池总大小为 100 字节
  2. 内存池地址分配必须是连续内存,并优先从低地址分配
  3. 内存释放后可被再次分配,已释放的内存在空闲时不能被二次释放
  4. 不会释放已申请的内存块的中间地址
  5. 释放操作只是针对首地址所对应的单个内存块进行操作,不会影响其他内存块

输入

首行为整数 N,表示操作命令的个数,取值范围 0<N<=100

接下来的 N 行,每行将给出一个操作命令
操作命令和参数之间用 ”=“ 分割
输出见题目输出要求

输出

最后进来员工,他会坐在第几个位置
如果位置已满 则输出 -1

示例一

输入

2
REQUEST=10
REQUEST=20

输出

0
10

示例二

输入

5
REQUEST=10
REQUEST=20
RELEASE=0
REQUEST=20
REQUEST=10

输出

0
10
30
0

说明

  • 第一条指令,申请地址 0~9 的 10 个字节内存
    返回首地址 0
  • 第二条指令,申请地址 10~29 的 20 字节内存
    返回首地址 10
  • 第三条指令,释放首地址为 0 的内存申请,0~9 地址内存被释放,
    变为空闲,释放成功,无需输出
  • 第四条指令,申请 20 字节内存,09 地址内存连续空间不足 20 字节
    往后查找到 30
    49 地址 返回首地址 30
  • 第五条指令,申请地址 10 字节,0~9 地址内存连续空间足够
    返回首地址 0

题解答案:https://dream.blog.csdn.net/article/details/128985421

👇 全网 6000+人正在学习的 爬虫专栏 👇👇👇👇

...全文
287 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

7

社区成员

发帖
与我相关
我的任务
社区描述
这里有华为od机试真题 这里有各个语言的解题技巧 这里有od岗位推荐 来吧
华为职场和发展面试 其他 北京·朝阳区
社区管理员
  • 梦想橡皮擦
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧