力扣每日一题(2024-6-18)2288. 价格减免

本文章是对官方题解的补充说明
原题链接:2288. 价格减免

思路

由题目中的“单词之间用单个空格分隔”和 “如果单词的形式为美元符号后跟着一个非负实数,那么这个单词就表示一个 价格 。”

可知:

首先要通过 ‘space’把原字符串进行切分,然后再通过判断每个子串的首字符是否为‘$’以及便利其中是否存在非数字字符来实现完整的代码。

而我存在的问题:

拆开好说但是如何合并呢?

class Solution {public String discountPrices(String sentence, int discount) {double d = 1 - discount / 100.0;// 先通过空格划分单词,再通过$符号寻找符合条件的价格,进而再操作String[] a = sentence.split(" ");for (int i = 0; i < a.length; i++ ) {if (check(a[i])) {a[i] = String.format("$%.2f", Long.parseLong(a[i].substring(1)) * d);}}return String.join(" ", a);}public boolean check(String str) {if (str.length() == 1 || str.charAt(0) != '$') {return false;}char[] s = str.toCharArray();for (int i = 1; i < s.length; i++ ) {if (!Character.isDigit(s[i])) {return false;}}return true;}
}

细节

Long.parseLong(String s)

  • 作用:将字符串解析为 long 类型的整数。

  • 使用场景:当你确定字符串表示一个有效的整数时,可以使用这个方法将字符串转换为 long 类型。

  • 示例

    String numberStr = "12345";
    long number = Long.parseLong(numberStr); // 结果为 12345

substring(int beginIndex)

  • 作用:返回一个新的字符串,它是此字符串的子字符串。

  • 使用场景:当你需要从字符串的某个特定位置开始提取子字符串时,可以使用这个方法。

  • 示例

    String str = "$100";
    String subStr = str.substring(1); // 结果为 "100"

Character.isDigit(char ch)

  • 作用:确定指定的字符是否为数字字符。

  • 使用场景:当你需要检查一个字符是否为数字时,可以使用这个方法。

  • 示例

    char ch1 = '5';
    boolean isDigit1 = Character.isDigit(ch1); // 结果为 truechar ch2 = 'a';
    boolean isDigit2 = Character.isDigit(ch2); // 结果为 false

String.format(String format, Object... args)

  • 作用:使用指定的格式字符串和参数返回格式化后的字符串。

  • 使用场景:当你需要创建一个格式化字符串时,可以使用这个方法。常见的格式化占位符有 %d (整数), %f (浮点数), %s (字符串) 等等。

  • 示例

    double value = 1.2345;
    String formatted = String.format("%.2f", value); // 结果为 "1.23"

结合示例代码

在你的代码中,以下表达式:

a[i] = String.format("$%.2f", Long.parseLong(a[i].substring(1)) * d);
  • a[i].substring(1):提取单词中 $ 符号之后的部分,例如,将 "$100" 转换为 "100"

  • Long.parseLong(a[i].substring(1)):将字符串 "100" 解析为长整型数值 100

  • Long.parseLong(a[i].substring(1)) * d:将解析后的长整型数值乘以折扣系数 d,得到折扣后的价格。

  • String.format("$%.2f", ...):将折扣后的价格格式化为保留两位小数的字符串,并加上 $ 符号,例如,将 50.0 转换为 "$50.00"

代码分析

class Solution {public String discountPrices(String sentence, int discount) {double d = 1 - discount / 100.0;// 先通过空格划分单词,再通过$符号寻找符合条件的价格,进而再操作String[] a = sentence.split(" ");for (int i = 0; i < a.length; i++ ) {if (check(a[i])) {a[i] = String.format("$%.2f", Long.parseLong(a[i].substring(1)) * d);}}return String.join(" ", a);}public boolean check(String str) {if (str.length() == 1 || str.charAt(0) != '$') {return false;}char[] s = str.toCharArray();for (int i = 1; i < s.length; i++ ) {if (!Character.isDigit(s[i])) {return false;}}return true;}
}
  • check(a[i]):检查单词是否是一个价格单词。首先确保单词长度大于1且以 $ 开头,然后检查 $ 之后的每个字符是否都是数字。

  • a[i] = String.format("$%.2f", Long.parseLong(a[i].substring(1)) * d);:对于每个符合条件的价格单词,去掉 $ 符号,解析为长整型,计算折扣后价格,并格式化为保留两位小数的字符串。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP 标准建议psr

PSR-1: Basic Coding Standard&#xff08;基础编码标准&#xff09; PSR-1 定义了PHP代码文件的基本编写规范&#xff0c;它关注的是代码文件的结构和一些通用的编程约定&#xff0c;主要包括&#xff1a; 文件命名&#xff1a;PHP文件必须以.php为后缀。PHP标签&#xff1a…

智慧校园的构建要素是什么

在当今数字时代&#xff0c;智慧校园的构建已成为教育界的热门话题。随着技术的不断进步&#xff0c;学校不再只是传统的教学场所&#xff0c;而是一个充满智能化和创新的环境。那么&#xff0c;智慧校园的构建要素究竟是什么呢&#xff1f; 基础设施建设 高速、稳定的网络覆…

Vue的computed大致细节

computed computed具体实现流程computer的执行顺序 computed 具体实现流程 computer内部首先是标准化参数然后调用runner函数进行依赖收集设置dirty为true创建副作用函数&#xff0c;具体如下 const runner effect(getter,{//延迟执行lazy:true,//标记为computed effect 用…

pygame游戏开发

Pygame游戏开发 pygame简介 模块库请参考&#xff1a;pygame官方文档 pygame可以用作游戏开发&#xff0c;但在商业游戏中真正的开发工具却不是pygame。使用pygame开发游戏周期长。 安装pygame 在pycharm中安装第三方库pygame&#xff1a; 在计算机中安装pygame&#xf…

ElasticSearch学习篇13_《检索技术核心20讲》进阶篇之LSM树

背景 学习极客实践课程《检索技术核心20讲》https://time.geekbang.org/column/article/215243&#xff0c;文档形式记录笔记。 内容 磁盘和内存数据读取特点 工业界中数据量往往很庞大&#xff0c;比如数据无法全部加载进内存&#xff0c;无法支持索引的高效实时更新&…

Nature Electronics|微器件在柔性基底上的高密度集成(可穿戴电子/界面调控/电子皮肤/柔性电子)

2024年4月22日,韩国首尔大学Yongtaek Hong和美国斯坦福大学Byeongmoon Lee团队,在《Nature Electronics》上发布了一篇题为“A site-selective integration strategy for microdevices on conformable substrates”的论文。论文内容如下: 一、 摘要 微器件可以被集成在柔性…

【GD32F303红枫派使用手册】第十九节

19.1 实验内容 通过本实验主要学习以下内容&#xff1a; SPI简介 GD32F303 SPI简介 SPI NOR FLASH——GD25Q32ESIGR简介 使用GD32F303 SPI接口实现对GD25Q32ESIGR的读写操作 19.2 实验原理 19.2.1 SPI简介 SPI&#xff08;Serial Peripheral interface&#xff09;&…

Django期末重点

思维导图 一、Djanog框架基础 MVT设计模式&#xff08;model模型【操作数据库】、template模板【页面展示】、view视图【处理请求和调用模型模板】&#xff09; 二、Django项目框架搭建 创建项目骨架 django-admin startproject 项目名启动服务 &#xff08;1&#xff09;p…

STM32(七)———TIM定时器(基本and通用)

文章目录 前言一、通用定时器TIM简介1.STM32F10X系列总共最多有八个定时器&#xff1a;2.三种STM32定时器的区别&#xff1a;3.STM32 的通用定时器功能&#xff1a;4.计数器模式 二、基本定时器1.基本定时器的结构框图2.定时时间的计算3.定时器的结构体和库函数 总结 前言 一个…

C#——文件读取BufferedStream类详情

文件读取BufferedStream类 BufferedStream字节流临时存储 缓存区是内存中字节块&#xff0c;用于缓存数据&#xff0c;减少对操作系统调用失败的次数&#xff0c;缓存区可以提升数据 用法: // 创建一个缓存区对象 参数是stream对象&#xff0c;指定字节临时存储的路径 Buffe…

如何利用机器学习算法进行数据分析和挖掘,数据优化、预处理、特征提取等老板吩咐的工作

在利用机器学习算法进行数据分析和挖掘时&#xff0c;数据优化、预处理和特征提取是非常重要的步骤。 1. 数据收集 收集相关数据&#xff0c;这是整个过程的起点和基础。数据可以来自多个来源&#xff0c;如数据库、API、网络爬虫等。 2. 数据预处理 数据预处理是保证数据质…

如何实现ElementUI动态表头?

可能看到这个标题,有些小伙伴会有些疑惑,动态表头是个什么东西,怎么没听说过? 其实动态表头在企业的项目中用途还是非常广泛的,比如erp系统什么的 那么动态表头是什么呢?说简单点就是让ElementUI的Table表格可以实现自定义表头展示+表头拖拽排序的一个功能 这个东西我…

<Rust><iced>基于rust使用iced构建GUI实例:如何将svg格式转为ico格式图片?

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本文是专栏第4篇实例,依旧是一个图像格式转换程序,基于rust的svg库resvg、图像处理库image以及文件处理库rfd。 流程是先用resvg获取svg图片的数据并将其转为png数据…

20.Dcoker跨宿主机容器通信之overlay

Dcoker跨宿主机容器通信之overlay http://www.cnblogs.com/CloudMan6/p/7270551.html 环境准备&#xff0c;三台机器&#xff0c;主机名为docker01&#xff08;192.168.111.11&#xff09;、docker02&#xff08;192.168.111.12&#xff09;、docker03&#xff08;192.168.111…

电子竞赛5——作息时间控制器

一 . 题目要求 用单片机制作作息时间控制器&#xff1b;用四位数码管显示实时时钟&#xff08;时、分&#xff0c;24小时制、12小时制&#xff09;&#xff0c;有秒闪&#xff0c;小时十位有零消隐&#xff1b;可用数字键或、-键校时&#xff08;可快速、-&#xff09;被校位&…

【ARMv8/ARMv9 硬件加速系列 4 -- 加解密 Cryptographic Extension 介绍】

文章目录 ARMv8.0 Cryptographic ExtensionFEAT_AESFEAT_PMULLFEAT_SHA1FEAT_SHA256ARMv8.2 扩展FEAT_SHA512FEAT_SHA3FEAT_SM3FEAT_SM4ARMv8.0 Cryptographic Extension ARMv8.0引入了加密扩展(Cryptographic Extension),旨在加速加密和解密操作。这一扩展通过新增专用指令…

redis雪崩问题怎么解决

Redis雪崩问题通常发生在大量缓存同时过期&#xff0c;导致所有请求直接打到数据库上&#xff0c;从而可能压垮数据库。解决这一问题的关键在于分散缓存失效时间&#xff0c;避免集中失效。此外&#xff0c;还可以通过限流、降级、预热等策略来进一步缓解压力。 下面是一个综合…

C++代码编写风格:Header-Only与声明实现分离的选择

C代码编写风格&#xff1a;Header-Only与声明实现分离的选择 最近看到一些小伙伴问到了几个比较有趣的问题&#xff0c;这里总结一下&#xff0c;这些都是实际面试中出现过的问题&#xff0c;看看你知道多少&#xff0c;考察一下底子。 面试问题1&#xff1a;你通常编写代码的风…

JAVA云HIS医院管理系统源码 云HIS系统的应用场景

JAVA云HIS医院管理系统源码 云HIS系统的应用场景 云HIS是针对中小医疗健康机构推出的一套基于云端的诊所云HIS服务平台&#xff0c;包括内部管理系统、临床辅助决策系统、体检系统、客户管理与服务系统、健康管理系统、知识管理系统、医患沟通系统、线上营销系统、其他外部系…

降价潮背后:中国产业大模型落地的卡点到底在哪?

“技术是不会以任何商业行为或者人们的意愿所改变它的上限和下限的&#xff0c;它需要的时间是恒定的。” 如果说中国大模型市场最核心的话题是什么&#xff1f;降价则必然是其中之一。 从目前的参赛玩家来看&#xff0c;不论是字节豆包&#xff0c;还是阿里、百度、腾讯、科…