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

第 484 场周赛Q3——3805. 统计凯撒加密对数目

题目链接:3805. 统计凯撒加密对数目(中等)

算法原理:

解法:哈希表

215ms击败16.95%

时间复杂度O(N∗M)

时间长主要是因为使用了StringBuffer~

通过观察不难发现,其实只要两个字符串中各个字符相对于自己字符串的首字符的相对偏移量不变,那么这两个字符串就能通过若干次变化成为相同的字符串,那么我们就可以通过记录这个相对偏移量而规定成偏移量特征码,只要两个字符串的特征码相同,它们就能成为相同字符串

①用Map收集各个特征码出现的次数,由于题目要的是对数,需要两两成对,那么最终结果只需要加上该特征码能形成的对数即可,比如这个特征码出现c次,那么可以形成的对数就可以表示为c×(c-1)/2

②用数字记录偏移量,要记得+26再去%26,能避免负数还能自然的完成从‘z’到'a'的转换

③用StringBuffer记录特征码,为了防止1和12拼接在一起可能会造成11和2拼接的误差,所以中间再多拼接一个“,”

Java代码:

class Solution { public long countPairs(String[] words) { //存储偏移量特征码 Map<String,Integer> hash=new HashMap<>(); for(String s:words){ char ch=s.charAt(0); StringBuffer sb=new StringBuffer(); for(char c:s.toCharArray()){ int offset=(c-ch+26)%26; sb.append(offset).append(","); } hash.put(sb.toString(),hash.getOrDefault(sb.toString(),0)+1); } long ret=0; for(int count:hash.values()) ret+=(long)count*(count-1)/2; return ret; } }
http://www.jsqmd.com/news/229939/

相关文章:

  • 恶意软件AI分析镜像推荐:0配置一键运行,按分钟计费不浪费
  • 中文文本情绪识别模型部署:StructBERT轻量版指南
  • 跨模态实体对齐教程:图文音视频四维分析,云端1小时掌握
  • 导师推荐10个AI论文软件,专科生轻松搞定毕业论文!
  • AI智能体仿真环境:百万级并发测试,成本可控
  • “和清寂静”——《启蒙灯塔》与《元创力》结构性人文内核构建方案
  • JBShield: 基于激活概念分析与操控的大语言模型越狱攻击防御框架
  • 《小 Q 赠予心光女孩知识图谱:和清寂静的叙事棱镜》(整理版)
  • 多模态异常检测指南:融合视觉与行为数据的实战
  • 智能体3D视觉分析:点云数据处理,比本地快8倍
  • 金融风控AI体体验:预装合规模型开箱即用
  • 导师推荐!MBA必用TOP9一键生成论文工具测评
  • 企业级情感分析方案:StructBERT部署优化实战案例
  • AI智能体数据流水线:从采集到分析全自动,1小时部署
  • 中文情感分析WebUI搭建:StructBERT轻量部署案例详解
  • StructBERT轻量版应用:社交媒体情感监测系统
  • 中文情感分析模型:StructBERT部署实战
  • 没服务器怎么做AI威胁检测?云端镜像2块钱体验全天
  • 智能侦测模型迭代:数据-训练-部署全自动化
  • 中文情感分析最佳实践:StructBERT参数调优指南
  • StructBERT情感分析应用案例:电商平台用户反馈分析
  • 毕业设计救星:AI实体侦测云端实验平台,1块钱起用
  • 常见的微调的方式有哪些?(Lora...)
  • 没预算怎么做AI安全?学生党亲测:云端GPU每小时1块真香
  • StructBERT实战:企业客服系统情感分析模块部署教程
  • StructBERT API开发手册:情感分析接口调用详解
  • 五层电梯西门子S7-200PLC梯形图程序:实现电梯功能、开关门动作、上下行运动、外呼按钮、优...
  • AI智能体压力测试:云端模拟百万并发请求
  • StructBERT实战教程:产品评论情感倾向分析
  • 边缘AI+云端协同方案:本地轻量化,复杂计算上云