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

A.每日一题——3606. 优惠券校验器

题目链接:3606. 优惠券校验器(简单)

算法原理:

解法:模拟

击败47.54%

时间复杂度O(Nlogn)

这题的思路非常简单,但是实现起来比较麻烦,感觉应该算个中等题,主要就是考察排序

记忆👇

1. 字符串比:compareTo ✅
什么词序、字典序、名称排序都用它
2. 数字比:用包装类的 compare ✅
Integer.compare(a, b)、Double.compare(a, b)
3. 其他基本类型:直接相减 ✅
char1 - char2、int1 - int2(小数值可用)

Java代码:

class Solution { public List<String> validateCoupons(String[] c, String[] b, boolean[] isActive) { int n=c.length; List<String> ret=new ArrayList<>(); String[][] tmp=new String[n][2]; for(int i=0;i<n;i++){ if(isc(c[i])&&isb(b[i])&&isActive[i]){ tmp[i][0]=c[i]; tmp[i][1]=b[i]; }else{ //标记为无效记录,防止空指针报错 tmp[i][0]=""; tmp[i][1]=""; } } Arrays.sort(tmp,(x,y)->{ //处理空记录:空记录排在最后 if(x[0].equals("")&&y[0].equals("")) return 0; if(x[0].equals("")) return 1;//x为空,x在后面 if(y[0].equals("")) return -1;//y为空,x在前面 //先比较品牌首字符 int tmpret=Character.compare(x[1].charAt(0),y[1].charAt(0)); if(tmpret!=0) return tmpret; //品牌首字母相同,再比较代码 return x[0].compareTo(y[0]); }); for(String[] t:tmp){ if(t[0].equals("")) continue; ret.add(t[0]); } return ret; } private boolean isc(String s){ for(char c:s.toCharArray()){ if(!(c>='a'&&c<='z')&&!(c>='A'&&c<='Z') &&!(c>='0'&&c<='9')&&!(c=='_')) return false; } return true; } private boolean isb(String s){ return (s.equals("electronics")||s.equals("grocery")||s.equals("pharmacy")||s.equals("restaurant")); } }
http://www.rkmt.cn/news/95171.html

相关文章:

  • ComfyUI与电影分镜草图结合:导演前期视觉预演工具
  • C++基础:输入输出、缺省参数,函数重载与引用的巧妙
  • 重磅发布:Qwen3-VL-4B-Thinking多模态模型开源,开启视觉语言理解新纪元
  • 技术行业动态:当前发展趋势与未来展望
  • torch 操作函数
  • 什么叫范式
  • Qwen3-30B-A3B-Thinking-2507-FP8:新一代推理增强大模型重磅发布
  • Qwen3-VL-4B-Instruct-FP8:多模态大模型的轻量化革命与技术突破
  • jupyter notebook如何使用虚拟环境?
  • 13、AWK与正则表达式:数据处理与文本匹配的强大工具
  • 结构体设计艺术:Host侧Tiling数据结构定义详解
  • 14、正则表达式与日志处理全解析
  • 国外好软件,但切勿非法使用,否则后果自负!
  • ensp vlan实验作业
  • 22、PHP编程:内置函数与MySQL交互全解析
  • 23、PHP编程与相关技术全解析
  • 腾讯混元开源POINTS-Reader:轻量化视觉语言模型重塑文档转换效率新标杆
  • OpenHarmony与ArkUI-X的AtomGit_Pocket速通版
  • 腾讯混元SRPO技术突破:FLUX模型真实感提升372%,开创文本图像生成新范式
  • 39、SQL Server管理与监控全解析
  • ServiceNow发布轻量化多模态模型Apriel-1.5-15b-Thinker,15B参数实现企业级推理能力
  • 50、Linux NFS 网络文件系统全解析
  • 52、Samba与分布式文件系统(DFS)全解析
  • 【后端】【Java】一文详解Spring Boot RESTful 接口统一返回与异常处理实践
  • 【后端】【Java】一文详解Spring Boot 统一日志与链路追踪实践
  • 【后端】【Java】《Spring Boot 统一接口耗时统计实践:基于 HandlerInterceptor 的工程级方案》
  • 【大前端】【Android】一文详解Android MVVM 模式详情解析
  • 46、Asterisk VoIP系统配置指南
  • 45、对等网络文件共享与网关互通性解析
  • 运输层核心总结