当前位置: 首页 > news >正文

掘金--创意标题匹配问题

问题描述

在广告平台中,为了给广告主一定的自由性和效率,允许广告主在创造标题的时候以通配符的方式进行创意提交。线上服务的时候,会根据用户的搜索词触发的 bidword 对创意中的通配符(通配符是用成对 {} 括起来的字符串,可以包含 0 个或者多个字符)进行替换,用来提升广告投放体验。例如:“{末日血战} 上线送 SSR 英雄,三天集齐无敌阵容!”,会被替换成“帝国时代游戏下载上线送 SSR 英雄,三天集齐无敌阵容!”。给定一个含有通配符的创意和n个标题,判断这句标题是否从该创意替换生成的。

测试样例

样例1:

输入:n = 4, template = “ad{xyz}cdc{y}f{x}e”, titles = [“adcdcefdfeffe”, “adcdcefdfeff”, “dcdcefdfeffe”, “adcdcfe”]
输出:“True,False,False,True”

样例2:

输入:n = 3, template = “a{bdc}efg”, titles = [“abcdefg”, “abefg”, “efg”]
输出:“True,True,False”

样例3:

输入:n = 5, template = “{abc}xyz{def}”, titles = [“xyzdef”, “abcdef”, “abxyzdef”, “xyz”, “abxyz”]
输出:“True,False,True,True,True”

思路分析

看到这个题的第一想法就是???
题目并没有说明数据范围,如果数据范围过大不上点手段的话,肯定无法a掉的:)
但是这道题只是简单难度,所以猜它的数据规模并不大,暴力大概率能过。但是写暴力感觉很无聊,脑袋中突然想到我们在实际开发过程中也会遇到这种匹配的问题,比如邮箱格式验证等。
所以我们这里可以使用正则表达式来解决,由于正则学的不咋样,这里求救了一下伟大的GPT之神,顺利a掉。
时间复杂度: O ( n ⋅ ( k ⋅ m + p + q ) ) O(n\cdot(k\cdot m+p+q)) O(n(km+p+q))
其中:
n n n:标题数量;
k k k:模板中的 {} 数量;
m m m:模板长度;
p p p:正则表达式长度;
q q q:标题长度。

#include <iostream>
#include <string>
#include <vector>
#include <regex>
using namespace std;bool isGeneratedTitle(const string& templateStr, const string& title) {// 将模板中的通配符 {} 替换为正则表达式 (.*)string pattern = templateStr;size_t pos = 0;// 替换所有的 {} 为 (.*)while ((pos = pattern.find("{", pos)) != string::npos) {size_t end = pattern.find("}", pos);if (end == string::npos) break; pattern.replace(pos, end - pos + 1, "(.*?)");pos += 4; }// 在正则表达式中添加开始和结束标记pattern = "^" + pattern + "$";// 使用正则表达式匹配regex re(pattern);return regex_match(title, re);
}std::string solution(int n, std::string template_,std::vector<std::string> titles) {// Please write your code herestring ans = "";for(int i = 0; i < n; ++i){if(ans.size() != 0){ans += ",";}if (isGeneratedTitle(template_, titles[i])){ans += "True";} else {ans += "False";}}return ans;
}

相关文章:

掘金--创意标题匹配问题

问题描述 在广告平台中&#xff0c;为了给广告主一定的自由性和效率&#xff0c;允许广告主在创造标题的时候以通配符的方式进行创意提交。线上服务的时候&#xff0c;会根据用户的搜索词触发的 bidword 对创意中的通配符&#xff08;通配符是用成对 {} 括起来的字符串&#x…...

OBU和T-Box

OBU&#xff08;On-Board Unit&#xff0c;车载单元&#xff09;和T-Box&#xff08;Telematics Box&#xff0c;远程信息处理控制单元&#xff09;都是用于车联网和智能交通系统的车载设备&#xff0c;但它们的功能、应用场景和技术特点存在显著差异。以下是两者的详细对比&am…...

【PVE】Proxmox VE8.0+创建LXC容器安装docker

为了不影响PVE宿主机&#xff0c;通常使用套娃的形式安装Docker容器&#xff0c;再安装相关docker应用。首先在CT模板中创建 Linux 容器&#xff0c;推荐使用Debian。开启ssh登录&#xff0c;修改debian配置&#xff0c;安装docker 一、创建 LXC 容器 1、CT模板下载 点击“模…...

一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk

文章目录 一文大白话讲清楚webpack基本使用——11——chunkIds和runtimeChunk1. 建议按文章顺序从头看&#xff0c;一看到底&#xff0c;豁然开朗2. 啥是chunkIds3.怎么使用chunkIds4. 啥是runtimeChunk5. 怎么使用runtimeChunk 一文大白话讲清楚webpack基本使用——11——chun…...

Java 中的设计模式:经典与现代实践

Java 中的设计模式&#xff1a;经典与现代实践 1. 设计模式简介 设计模式是一种软件开发中的思想&#xff0c;它为我们提供了一些经过验证的、能够应对常见问题的解决方案。学习和掌握设计模式能够让开发者在面对复杂的需求时&#xff0c;能够设计出更加灵活、可维护的代码。…...

DRG_DIP 2.0时代医院程序结构转型与数据结构优化研究

一、引言 1.1 DRG_DIP 2.0 改革背景与意义 医保支付方式改革在医疗保障制度改革中占据着极为关键的地位&#xff0c;是推动医疗领域变革的核心力量。它犹如一把精准的手术刀&#xff0c;对医疗资源的合理分配、医疗服务质量的稳步提升以及医疗费用的有效控制起着决定性作用。…...

一部手机如何配置内网电脑同时访问内外网

做过运维的朋友都知道&#xff0c;最麻烦的是运维电脑不能远程&#xff0c;每次都得现场进行维护&#xff0c;明明客户那边有可以访问内网的电脑&#xff0c;怎么操作能将这台电脑能访问跟到外网呢&#xff0c;这样不就能通过远程软件远程了吗&#xff1f;嘿嘿。按以下步骤试试…...

国产低功耗带LCD驱动和触摸按键功能的MCU

以下是国产低功耗、集成LCD驱动和触摸按键功能的MCU精选型号及其核心特性&#xff0c;结合性能、功耗和适用场景进行综合推荐&#xff1a; 1.灵动微MM32L0130系列 257 核心特性&#xff1a;低功耗&#xff1a;待机模式功耗低至100nA&#xff0c;支持多种低功耗模式。 LCD驱动&a…...

XCP 协议基础

文章目录 一、XCP 简介二、XCP的主要功能三、什么是标定四、什么时候进行标定五、标定的意义六、标定的三层架构XCP协议 和 CCP协议的区别参考 一、XCP 简介 XCP 协议的全称为 eXtended Calibration Protocol&#xff0c;即扩展标定协议。 另有其他定义&#xff0c;XCP 协议全…...

Swift 中 Codable 和 Hashable 的理解

最近初学Swift&#xff0c;碰到下面的代码脑袋里冒出疑问&#xff1a;Codable 和 Hashable是啥&#xff1f;怎么理解&#xff1f; struct Landmark: Hashable, Codable {var id: Intvar name: Stringvar park: Stringvar state: Stringvar description: String }针对上面的疑问…...

基于 WPF 平台实现成语游戏

一、引言 在软件开发领域&#xff0c;利用各种框架开发有趣的应用程序是提升技术能力和增加开发乐趣的有效方式。WPF&#xff08;Windows Presentation Foundation&#xff09;作为微软强大的桌面应用开发框架&#xff0c;提供了丰富的图形和交互功能。本文将带领大家基于 WPF…...

2024“博客之星”——我的博客成长与技术洞察

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 目录 一、引言二、个人成长与突破盘点&#xff08;一&#xff09;技能提升与知识拓展&#xff08;二&#xff09;创作风格与影响力提升&#xf…...

HTTPS协议简述

HTTPS 协议简介 HTTPS 是 HTTP Security 的组合&#xff0c;即在 HTTP 的基础上加入了安全性机制&#xff0c;主要通过加密传输、身份认证和数据完整性保护来确保通信的安全性。 为了实现这一目标&#xff0c;HTTPS 引入了 加密技术&#xff0c;包括对称加密、非对称加密和数…...

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝&#xff0c;2024年已经来临&#xff0c;回顾过去一年&#xff0c;科技的迅猛进步简直让人目不暇接。 在人工智能&#xff08;AI&#xff09;越来越强大的今天&#xff0c;我们不再停留在幻想阶段&#xff0c;量子计算的雏形开始展示它的无穷潜力&#xff0c;Web …...

HTML常用属性

HTML标签的常见属性包括许多不同的功能&#xff0c;可以为元素提供附加信息或控制元素的行为。以下是一些常见的属性及其解释&#xff1a; 1. src 描述&#xff1a;src&#xff08;source&#xff09;属性指定一个资源的路径&#xff0c;通常用于图像、音频、视频等标签。常见…...

电子应用设计方案100:智能家庭AI电风扇系统设计

智能家庭 AI 电风扇系统设计 一、引言 智能家庭 AI 电风扇系统旨在为用户提供更加舒适、便捷和个性化的吹风体验&#xff0c;通过融合人工智能技术和先进的控制算法&#xff0c;实现智能化的风速调节、风向控制和场景适应。 二、系统概述 1. 系统目标 - 实现精准的风速调节&a…...

ThinkPHP 8请求处理-获取请求对象与请求上下文

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用Composer初始化ThinkPHP 8应用_thinkphp8 compos…...

工厂模式 - 工厂方法模式、抽象工厂模式

引言 工厂模式&#xff08;Factory Pattern&#xff09;是设计模式中创建型模式的一种&#xff0c;它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建与使用分离&#xff0c;使得代码更加灵活、可扩展。工厂模式主要分为两种&#xff1a;工厂方法模式和抽象工…...

2025年已过6%

前些阵子&#xff0c;注意到一个网站的年度进度条显示今年已完成4%的进度&#xff0c;而今天是1月22日&#xff0c;再一看已过去6%。如果1个月按30天来计算&#xff0c;1个月也就占一年1/12&#xff0c;差不多在8%-9%左右。 也许你会感觉这6%过得很快&#xff0c;也许你会感觉这…...

C#,入门教程(04)——Visual Studio 2022 数据编程实例:随机数与组合

上一篇&#xff1a; C#&#xff0c;入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果https://blog.csdn.net/beijinghorn/article/details/123478581 C#&#xff0c;入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net…...

UWB高精度定位技术在智能仓储中的应用

​在智能化和数字化转型的浪潮中&#xff0c;UWB高精度定位系统逐渐成为企业优化仓储管理和生产调度的关键技术。结合RFID标签打印机和服装生产型ERP软件&#xff0c;这一技术为企业带来了全新的管理方式和效率提升。 UWB高精度定位系统的核心优势 UWB&#xff08;超宽带&…...

计算机毕业设计hadoop+spark视频推荐系统 短视频推荐系统 视频流量预测系统 短视频爬虫 视频数据分析 视频可视化 视频大数据 大数据

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

【AI编辑器】字节跳动推出AI IDE——Trae,专为中文开发者深度定制

目录 一、背景 二、核心特性 2.1 AI驱动的代码自动生成 2.2 智能问答与代码补全 2.3 多语言支持 2.4 插件与扩展 三、架构 四、下载使用 4.1 下载与安装 4.2 界面与配置 五、应用实践 5.1 快速生成代码 5.2 智能问答与调试 5.3 团队协作与代码审查 六、与Cursor…...

CSDN 博客之星 2024:默语的技术进阶与社区耕耘之旅

CSDN 博客之星 2024&#xff1a;默语的技术进阶与社区耕耘之旅 &#x1f31f; 默语&#xff0c;是一位在技术分享与社区建设中坚持深耕的博客作者。今年&#xff0c;我有幸再次入围成为 CSDN 博客之星TOP300 的一员&#xff0c;这既是对过往努力的肯定&#xff0c;也是对未来探…...

《探秘鸿蒙Next:非结构化数据处理与模型轻量化的完美适配》

在鸿蒙Next的人工智能应用场景中&#xff0c;处理非结构化数据并使其适配模型轻量化需求是一项关键且具有挑战性的任务。以下是一些有效的方法和策略。 数据预处理 数据清洗&#xff1a;非结构化数据中往往存在噪声、重复和错误数据。对于文本数据&#xff0c;要去除乱码、特殊…...

async++库的使用示例

1、普通异步函数 如前面的博客介绍的&#xff0c;这个库中提供了async::spawn方法&#xff0c;这个方法通常用来启动异步函数&#xff0c;这个框架会利用线程池去完成函数&#xff0c;因此要注意数据安全。正因为将任务放到了单独的线程执行&#xff0c;并且还有调度开销&…...

springboot基于微信小程序的手机银行系统

Spring Boot基于微信小程序的手机银行系统是一种结合现代Web技术和移动应用优势的创新金融服务平台。 一、系统背景与意义 随着信息技术的快速发展和用户对便捷金融服务需求的日益增长&#xff0c;传统手机银行系统的人工管理方法已逐渐显露出效率低下、安全性低以及信息传输…...

25/1/22 算法笔记<ROS2> TF变换

TF&#xff08;Transform&#xff09; 是 ROS&#xff08;Robot Operating System&#xff09;中的一个核心功能&#xff0c;用于管理和发布坐标系之间的变换关系。TF 的主要作用是描述机器人系统中各个部分&#xff08;如传感器、执行器、底盘等&#xff09;之间的位置和姿态关…...

Android系统开发(六):从Linux到Android:模块化开发,GKI内核的硬核科普

引言&#xff1a; 今天我们聊聊Android生态中最“硬核”的话题&#xff1a;通用内核镜像&#xff08;GKI&#xff09;与内核模块接口&#xff08;KMI&#xff09;。这是内核碎片化终结者的秘密武器&#xff0c;解决了内核和供应商模块之间无尽的兼容性问题。为什么重要&#x…...

dp 凸优化

时间有点仓促&#xff0c;过几天会补。 来自 czz 学长的课&#xff0c;SMWC -> Day4 。 目录 凸函数介绍WQS二分1. P2619【国家集训队 2】Tree I2. CF739E Gosha is hunting 闵可夫斯基和1. QOJ-5421 Factories Once More2. GD 省集 tower Slope Trick1. CF713C2. ABC217H3.…...