青训5_1112_01 小S的倒排索引(内置方法 set(a) set(b) 及sorted 排序)

青训5_1112_01 小S的倒排索引.md

文章目录

  • 青训5_1112_01 小S的倒排索引.md
    • 问题描述
      • 测试样例
      • 示例
    • 思路
      • 答案1 内置方法 set(a)& set(b) 及sorted 排序
      • 方法2 不用内置方法,首席排序和共同数字集合

问题描述

小S正在帮助她的朋友们建立一个搜索引擎。为了让用户能够更快地找到他们感兴趣的帖子,小S決定使用倒排索引。倒排索引的工作原理是:每个单词都会关联一个帖子ID的列表,这些帖子包含该单词,且ID按从小到大的顺序排列。例如,单词“夏天“可能出现在帖子1、帖子3和帖子7中,那么这个单词的倒排链就是[1,3,7]。如果用户想同时找到包含"夏天”和”海滩"的帖子,小S需要找出两个倒排链的交集,且将结果按照从大到小的顺序输出。现在,给定两个单词的倒排链数组a和b,请你帮助小S找出同时包含这两个单词的帖子ID,并按从大到小的顺序返回结果。

测试样例

样例7:
输入:a= [1,2,3,7,b = [2,5,7]输出:[7,2]样例2:
输入:a =[1,4,8,10],b = [2,4,8,10]输出:[10,8,4]样例3:
输入:a =[3,5,9],b = [1,4,6]输出:口样例4:
输入:a = [1,2,3],b= [1,2,3]输出:[3,2,1]

示例

def solution(a, b):# write code herereturn []if __name__ == '__main__':print(solution([1, 2, 3, 7], [2, 5, 7]) == [7, 2])print(solution([1, 4, 8, 10], [2, 4, 8, 10]) == [10, 8, 4])print(solution([3, 5, 9], [1, 4, 6]) == [])print(solution([1, 2, 3], [1, 2, 3]) == [3, 2, 1])

思路

找到两个数据中的相同数字、同时从大到小排序为数组

答案1 内置方法 set(a)& set(b) 及sorted 排序

def solution(a, b):# 将两个列表转换为集合并求交集common = set(a) & set(b)# 将交集转换为列表并降序排序return sorted(list(common), reverse=True)if __name__ == '__main__':print(solution([1, 2, 3, 7], [2, 5, 7]) == [7, 2])print(solution([1, 4, 8, 10], [2, 4, 8, 10]) == [10, 8, 4])print(solution([3, 5, 9], [1, 4, 6]) == [])print(solution([1, 2, 3], [1, 2, 3]) == [3, 2, 1])

方法2 不用内置方法,首席排序和共同数字集合

def solution(a, b):# 用于存储结果的列表result = []# 获取数组长度len_a = len(a)len_b = len(b)# 初始化两个指针,分别指向a和b的起始位置i = 0j = 0# 当两个指针都未到达数组末尾时继续while i < len_a and j < len_b:if a[i] == b[j]:  # 找到相同元素result.append(a[i])i += 1j += 1elif a[i] < b[j]:  # a中的元素较小,移动a的指针i += 1else:  # b中的元素较小,移动b的指针j += 1# 将结果反转,实现从大到小排序left = 0right = len(result) - 1while left < right:result[left], result[right] = result[right], result[left]left += 1right -= 1return result

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/12685.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HLS实现图像二值化

最近在学习HLS语言&#xff0c;所以就自己摸索尝试了用HLS实现了图像二值化&#xff0c;把这个内容总结一下&#xff0c;分享出来。 首先打开HLS&#xff0c;然后新建一个Project&#xff0c;之后再在Source栏点击右键&#xff0c;选择New File...&#xff0c;创建名为pixelBi…

[ 内网渗透实战篇-1 ] 单域环境搭建与安装域环境判断域控定位CS插件装载CS上线

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

通过物流分拣系统来理解RabbitMQ的消息机制

RabbitMQ作为一个消息中间件&#xff0c;通过队列和路由机制&#xff0c;帮助应用程序高效传递消息。而它的消息流转过程&#xff0c;其实可以用物流分拣系统来直观理解。 在一个典型的物流分拣系统中&#xff0c;包裹会经过多个节点&#xff08;比如分拣中心、配送站&#xf…

别再乱搜了 这 5个宝藏AE模板网站,小白也能做出大片级动画

Hello&#xff0c;大家好&#xff0c;我是后期圈&#xff01; 今天来聊聊一个后期人都绕不开的话题&#xff1a;AE模板网站&#xff01;模板可是后期人的福音&#xff0c;无论你是想要惊艳的开场动画&#xff0c;酷炫的转场效果&#xff0c;还是个性化的文字特效&#xff0c;一…

CSS 编写位置详解及优先级分析

在前端开发中,CSS 的编写位置对项目的组织结构和维护性至关重要。不同的编写位置不仅影响代码的可读性和复用性,还决定了样式应用的优先级。 本文将根据编写位置的不同,详细介绍其定义、使用场景和优先级。 行内样式(Inline Styles) 行内样式(又称:内联样式)是将 CS…

ChatGPT 搜索 vs Google 搜索

原文&#xff1a;Amanda Caswell - 2024.11.01 随着 OpenAI 推出的实时搜索功能&#xff0c;ChatGPT 正在逐步成为像 Google 这样的传统搜索引擎的竞争对手。ChatGPT 以其对话式的回答方式而闻名&#xff0c;它能够在没有广告干扰的情况下提供实时的上下文信息。 我迫不及待地…

多进程的操作和案例

文章目录 高效编程一、多任务原理二、进程1、概念2、使用进程3、全局变量在多个子进程中不能共享4、启动大量子进程5、map方法6、单进程与多进程复制文件对比7、进程间通信8、进程实现生产者消费者9、案例&#xff08;抓取斗图&#xff09; 高效编程 一、多任务原理 概念 现代…

【更新中】《硬件架构的艺术》笔记(二):时钟与复位

本章主要针对ASIC设计给出建议&#xff0c;独立于CAD工具以及工艺&#xff0c;主要针对模块设计和存储器接口。 同步设计 这是对时钟域控制最安全的方法&#xff0c;单个主时钟和单个主置位/复位信号驱动设计中所有时序器件。 避免使用行波计数器 行波计数器&#xff1a;用…

Spring Boot编程训练系统:架构设计与技术选型

3系统分析 3.1可行性分析 通过对本编程训练系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本编程训练系统采用SSM框架&#xff0c;JAVA作为开发语言&#…

DAY111PHP开发框架THIKNPHP反序列化POP利用链RCE执行文件删除

一、文件删除利用链分析 1、__destruct发现调用$this->removeFiles(); 2、removeFiles();函数方法file_exists&#xff0c;unlink($filename);文件删除功能 3、unserialize(base64_decode($_GET[id])); 有可控变量 4、pop文件删除利用链的使用 只有在这个类中调用 Files可…

如何使用亿图脑图MindMaster大纲功能

亿图脑图MindMaster作为一款出色的思维导图软件&#xff0c;具备丰富的编辑和展示功能。就拿大纲模式而言&#xff0c;用户可以清晰地浏览思维导图上的内容。因为大纲功能可以将思维导图上的内容以文档归纳的形式呈现出来&#xff0c;便于用户分类记忆。 自由切换思维导图模式…

Python的Eval函数执行结果和Lua脚本中LuaFunction的执行结果有何异同

最近在维护一个项目的时候&#xff0c;同时用到了Python和Lua两种脚本语言&#xff0c;发现很多有意思的东西&#xff0c;比如Python的Eval函数和Lua的LuaFunction函数&#xff0c;他们都是返回目标函数的句柄&#xff0c;那么在用法和机制上又有什么不同呢&#xff1f;为了全面…

DQN强化训练agent玩是男人就下xx层小游戏

游戏代码参考Python是男人就下一百层小游戏源代码_是男人就下一百层完整代码python-CSDN博客 在游戏作者代码基础上修改了下使该游戏在失败后能自动重新开始&#xff0c;方便后续能不间断训练 def reset_game(self):self.score 0self.end Falseself.last 6 * SIDEself.dire …

2024最新版JavaScript逆向爬虫教程-------基础篇之面向对象

目录 一、概念二、对象的创建和操作 2.1 JavaScript创建对象的方式2.2 对象属性操作的控制2.3 理解JavaScript创建对象 2.3.1 工厂模式2.3.2 构造函数2.3.3 原型构造函数 三、继承 3.1 通过原型链实现继承3.2 借用构造函数实现继承3.3 寄生组合式继承 3.3.1 对象的原型式继承…

网络编程示例之网络socket程序编程

注意&#xff1a;学习资料可在ElfBoard官方网站“资料”专区获取。 本节用到的源码路径&#xff1a;ELF 1开发板资料包->03-例程源码->03-1 命令行例程源码->05_elf1_cmd_net tcp协议程序 tcp_server.c 服务端仍然是按照如下顺序进行编写&#xff1a; socket()//创…

标准的渠道治理方法

在当今竞争激烈的市场环境中&#xff0c;品牌的渠道管理犹如一座大厦的基石&#xff0c;至关重要。而其中&#xff0c;对渠道价格的治理更是关键环节&#xff0c;直接关系到品牌的生死存亡与长远发展。 当品牌渠道中不幸出现低价、窜货链接时&#xff0c;一场关乎品牌未来走向…

双指针算法的妙用:提高代码效率的秘密(3)

双指针算法的妙用&#xff1a;提高代码效率的秘密&#xff08;3&#xff09; 前言&#xff1a; 小编在昨日讲述了关于双指针算法的两个题目&#xff0c;今日继续分享两个题目的解析&#xff0c;我相信&#xff0c;我只要坚持每天啥刷题&#xff0c;算法能力终究会提高的&…

动力商城-03 Idea集成apifox Mybatis-Plus字段策略

1.Idea下载apifox插件 2.新建令牌放入Idea 3.右键上传到对应接口 4.设置前置url 插件能够自动识别swagger注解 Mybatis-Plus字段策略 1、FieldStrategy作用 Mybatis-Plus字段策略FieldStrategy的作用主要是在进行新增、更新时&#xff0c;根据配置的策略判断是否对实体对…

11.11--final关键字和抽象类

一 java 1.final 关键字-----放在 访问修饰符后面 1&#xff09;防止被继承 2&#xff09;防止 父类方法 被重写 3&#xff09;防止 类中的 属性 被修改 4&#xff09;防止 局部属性 被修改 1.2.细节 1&#xff09;final 修饰属性 必须赋初值 ------------------------------…

IntelliJ+SpringBoot项目实战(三)---基于源代码直接生成漂亮的接口文档

在SpringBoot中可以集成代码插件自动生成接口文档&#xff0c;而且生成的文档很漂亮&#xff0c;除了接口功能介绍、传入参数、响应参数&#xff0c;还具体类似postman的功能&#xff0c;可调用接口进行测试&#xff0c;另外还可以下单WORD版、.md,html格式的文档。下面我们先看…