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

2025年暨南大学 ACM校赛分析与题解

文章目录

  • C.最长公共前缀
  • D.排列
  • H.回文串

  • 法不定法,在于因时因势
  • AC不了就是还得加练!

C.最长公共前缀

在这里插入图片描述

  • 字典树模版题目,不了解字典树的同学,可以看我的另一篇博客 算法 之 字典树
class Node:
# 和模版题目相似,但是多了一个记录到底有多少个字符串在当前的前缀相同,只需多使用一个num记录即可__slots__ = "son","end","num"def __init__(self):self.son = {}self.num = 0self.end = False
class tree:def __init__(self):self.root = Node()# 插入新单词,同时对比和先前的全部的字符串的前缀def insert(self,word):cur = self.rootans = 0for c in word:if c not in cur.son:cur.son[c] = Node()cur = cur.son[c]# 注意的是,由于我们是边创建边更新,所以是先更新ans,才去更新cur.numans += cur.numcur.num += 1cur.end = Truereturn ansn = int(input())
res = 0
t = tree()for _ in range(n):s = input()res += t.insert(s)print(res)

D.排列

在这里插入图片描述

  • 模拟问题,但是具体如何写清楚模拟,就是一个比较复杂的事情
  • 具体而言,需要使用到哈希表进行模拟交换,我们使用哈希表记录可交换的位置,值-位置对,对于是W并且当前的位置i的元素不是i当然是不可能调整到满足题意的,所以直接输出-1,对于可以通过交换的情况,我们只需从左到右,让i出现在i位置即可
t = int(input())for _ in range(t):n = int(input())a = [0] + list(map(int,input().split()))c = "R" + input()# store 存储的是元素a[i]的位置是istore = {}ans = 0flag = 0for i in range(1,n+1):if c[i] == "R":store[a[i]] = i else:if a[i] != i :flag = 1break if flag:print(-1)continue for i in range(1,n+1):# 由于是从左向右遍历,所以得让ic出现在位置i if i != a[i] :# 获取i的位置id1 = store[i]# 我们会把a[i]和i的位置互换,所以a[i]会被换到位置id1store[a[i]] = id1a[i],a[id1] = a[id1],a[i]ans += 1print(ans)

H.回文串

在这里插入图片描述

  • 其实就是不能出现连续的两个相同的字符
t = int(input())for _ in range(t):n = int(input())s = input()ans = 0for i in range(n-1):if s[i] == s[i+1]:ans += 1print(ans)
http://www.xdnf.cn/news/163045.html

相关文章:

  • 二、UI自动化测试02--元素定位方法
  • 【赵渝强老师】快速上手TiDB数据库
  • 线程池(四):并发编程常见问题解析
  • java基础之枚举和注解
  • NdrpConformantVaryingArrayUnmarshall函数分析--重要
  • 【家政平台开发(79)】解锁家政新金融:家政平台与金融服务融合之道
  • 基于大模型的急性肠套叠全流程预测与诊疗方案研究报告
  • Java 变量入门指南
  • 什么是WebSocket?NGINX如何支持WebSocket协议?
  • 数据可视化大屏——大数据分析系统
  • C#进阶学习(十四)反射的概念以及关键类Type
  • 【Linux C/C++开发】使用hash算法进行性能优化
  • 【读论文】面向小目标的轻型变电设备缺陷检测算法
  • 力扣刷题Day 30:两数相加(2)
  • Simulink 数据存储机制:Base Workspace、Model Workspace 与 Data Dictionary 的核心区别
  • 2025.04.26-饿了么春招笔试题-第二题
  • Datawhale AI春训营 AI4S蛋白质赛道学习笔记
  • 第二大脑-个人知识库
  • 深入解析 C++17 中的std::variant与std::visit:从原理到实践
  • 来自 Bisheng 关于微调的内容总结
  • C盘爆红如何解决
  • 数据存储与安全保障双重buff叠满!极空间NAS『病毒查杀』功能上线,如何妙用?
  • Spring Cloud面试考点
  • Neo4j 常用查询语句
  • Deep Reinforcement learning for real autonomous mobile robot navigation
  • 【记一次亚马逊普华永道审计流程】
  • Go context 包的底层实现原理
  • 嵌入式C语言基础入门
  • 栈和堆内存可视化演示页面
  • Python编程中的基本语句