首页 > 其他分享 >58集团23校招测试工程师卷——考查队列

58集团23校招测试工程师卷——考查队列

时间:2024-09-01 20:24:33浏览次数:13  
标签:58 23 队列 self queue 校招 page def 页面

编程题-操作系统先入先出算法实现

1

2

3

4

5

6

7

8

9

10

11

在操作系统的页面置换算法中,当需要淘汰一个页面的时候,可以针对先进入主存的页面先淘汰;现在针对这个算法请实现一个简易版的程序,

实现在页面数达到内存上限时,通过先入先出的算法淘汰置换 并 输出最后保留在内存中的页面号。 

注:程序中需要按照下文的输入输出描述,进行对应的输入读取 与 相应格式的输出,否则程序执行不通过。

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 32M,其他语言64M

输入描述:

第一个数为cachesize,表示内存可以存储的页面数;

其余数字组成sourcelist,表示按照顺序往内存空间中放入的页面编号;

输出描述:

输出sourelist中经过置换后,最后保留在内存中的页面号如: [5,3,6]

示例1

输入例子:

2,3,4,5,6

输出例子:

[5, 6]

例子说明:

参数分两部分,第一个数代表cachesize的大小,剩余为页面号

本题主要考察队列的知识,可以用python面向对象特性创造一个队列,按照队列长度未满和队列长度已满两种情况考虑。

class queue:
    def __init__(self):
        self.queue=[]
    
    def push(self,page):
        self.queue.append(page)
    
    def remove(self,page):
        self.queue.remove(page)
    
    def pop(self):
        self.queue.pop(0)


pages=list(map(int,input().split(',')))

size=pages[0]

qlist=queue()
for i in range(len(pages)):
    #队列长度未满,可添加
    if len(qlist.queue)<size:
        if pages[i] in qlist.queue:
            qlist.remove(pages[i])
            qlist.push(pages[i])
        else:
            qlist.push(pages[i])    

    #队列长度已满
    if len(qlist.queue)==size:
        if pages[i] in qlist.queue:
            qlist.remove(pages[i])
            qlist.push(pages[i])
        else:
            qlist.pop()
            qlist.push(pages[i])

print(qlist.queue) 

标签:58,23,队列,self,queue,校招,page,def,页面
From: https://blog.csdn.net/JYXCCC/article/details/141789208

相关文章

  • B3928 [GESP202312 四级] 田忌赛马
    题目描述你要和田忌赛马。你们各自有 NN 匹马,并且要进行 NN 轮比赛,每轮比赛,你们都要各派出一匹马决出胜负。你的马匹的速度分别为 u_1,u_2,\cdots,u_nu1​,u2​,⋯,un​,田忌的马匹的速度分别为 v_1,v_2,\cdots,v_nv1​,v2​,⋯,vn​。田忌会按顺序派出他的马匹,请问你要......
  • Leetcode3234. 统计 1 显著的字符串的数量
    EverydayaLeetcode题目来源:3234.统计1显著的字符串的数量解法1:枚举左端点注意到,如果子串中的0非常多,多到0的个数的平方比1的个数都要大,那么这样的子串必然不是1显著子串。设cnt0为子串中的0的个数,cnt1为子串中的1的个数,那么必须满足:cnt0*cnt0<=......
  • CSS 中的图像、媒体和表单元素——WEB开发系列23
    Web开发中,图像、媒体和表单元素是构建用户界面的重要组成部分。正确地使用CSS来处理这些元素可以大幅提高用户体验,增强页面的美观性和功能性。一、什么是替换元素?图像和视频被描述为“替换元素”。这意味着CSS不能影响它们的内部布局——而仅影响它们在页面上相对于其他元素的......
  • 打卡信奥刷题(676)用Scratch图形化工具信奥B3867[普及组/提高组] [GESP202309 三级] 小
    [GESP202309三级]小杨的储蓄题目描述小杨共有NNN个储蓄罐,编号从00......
  • P10958 启示录 解题报告
    更好的阅读体验用记忆化搜索写数位dp真的很好写!题目传送门题目大意:\(T\)组数据,每次询问第\(x\)个含有至少\(3\)个连续\(6\)的数是什么。思路:考虑数位dp。一般数位dp问题有两种常见形式:询问\([l,r]\)内有多少个符合条件的数;询问满足条件的第\(k\)大(小)的......
  • “事事通”校园事务通知小程序的设计与实现-计算机毕业设计源码23598
    摘要 校园事务是大学生日常生活中不可或缺的一部分,包括课程查询、教务管理、校园活动信息等。然而,目前大多数学校在校园事务的通知发布和信息查询方面还依赖传统的官方网站和邮件通知,这种方式存在信息不及时、查找不方便等问题。本文旨在通过引入SpringBoot和Vue框架,结合云......
  • 240723 边缘检测
    原图索贝尔拉普拉斯和canny#-*-coding:utf-8-*-importsysimportcv2importnumpyasnp#加载图片#转换灰度图input_file=sys.argv[1]img=cv2.imread(input_file,cv2.IMREAD_GRAYSCALE)h,w=img.shape#索贝尔边缘检测-水平sobel_horizontal=cv2.Sobe......
  • 240723 knn电影推荐
    通过前面两篇,所以对某一个人A推荐电影,就是找到这个人最类似的人B已经看过的电影,然后将电影推荐A#-*-coding:utf-8-*-importjsonimportnumpyasnpfrompearson_scoreimportpearson_score#找到相似用户deffind_similar_users(dataset,user,num_users):ifu......
  • 一个操作系统的设计与实现——第23章 快速系统调用
    23.1什么是快速系统调用系统调用是操作系统为3特权级任务提供服务的一种手段。在32位操作系统中,我们通过中断实现了系统调用。由于系统调用是一个使用非常频繁的机制,且中断也不是专门为系统调用设计的,因此,64位CPU提供了系统调用的专用机制:快速系统调用。快速系统调用由专用的sy......
  • eladmin (文件上传+文件删除)(cve-2024-7458)
    侵权声明本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系:[[email protected]]。我们将在确......