整数的英语表示

题目链接

整数的英语表示

题目描述

注意点

  • 0 <= num <= 2^31 - 1

解答思路

  • 每三个数字形成一组(高位不足的部分可以用0填充),使用StringBuilder拼接每组的数字和单位
  • 关键是三个数字的英语表示,包含个位、十位、百位,找到三个数字值为0、[1, 9]、[10, 19]、[20, 99]、[100, 999]用英语表示的规律
  • 可以先将[1, 9]、[10, 19]、[20, 99]以及单位存储到数组中,方便根据每一位的数字快速找到其英语表示,[100, 999]则是由单个数字 + “Hundred” + 十位/个位/无组成

代码

class Solution {String[] singles = {"", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine "};String[] teens = {"Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen "};String[] tens = {"", "Ten ", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety "};String[] thousands = {"", "Thousand ", "Million ", "Billion "};public String numberToWords(int num) {if (num == 0) {return "Zero";}StringBuilder res = new StringBuilder();String sNum = num + "";int remainder = sNum.length() % 3;String s = "";if (remainder == 1) {s = "00";}if (remainder == 2) {s = "0";}s = s + num;int n = s.length();int unit = n / 3 - 1;for (int i = 0; i < n; i += 3) {String tmp = buildWords(s, i);if (!"".equals(tmp)) {res.append(tmp);res.append(thousands[unit]);}unit--;}res.deleteCharAt(res.length() - 1);return res.toString();}public String buildWords(String s, int i) {StringBuilder sb = new StringBuilder();if (s.charAt(i) != '0') {sb.append(singles[s.charAt(i) - '0']);sb.append("Hundred").append(" ");}switch(s.charAt(i + 1)) {case '0':sb.append(singles[s.charAt(i + 2) - '0']);break;case '1':sb.append(teens[s.charAt(i + 2) - '0']);break;default:sb.append(tens[s.charAt(i + 1) - '0']);sb.append(singles[s.charAt(i + 2) - '0']);break;}return sb.toString();}
}

关键点

  • 三个数字组成的一组整数怎么用英语表示
  • 注意每个单词后面的空格以及最后一个单词后没有空格

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

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

相关文章

C++ | Leetcode C++题解之第229题多数元素II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> majorityElement(vector<int>& nums) {int n nums.size();vector<int> ans;unordered_map<int, int> cnt;for (auto & v : nums) {cnt[v];}for (auto & v : cnt…

搭建ELK+Filebead+zookeeper+kafka实验

目录 1.部署 Filebeat 2. Logstash配置 3.浏览器kibana访问验证 主机名ip地址主要软件es01192.168.9.114ElasticSearches02192.168.9.115ElasticSearches03192.168.9.116ElasticSearch、Kibananginx01192.168.9.113nginx、LogstashNA192.168.9.111nginx、FilebeatNA192.168…

YOLOv8改进 | 注意力机制| 对小目标友好的BiFormer【CVPR2023】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

告别中央服务器:Syncthing实现点对点文件同步

介绍 Syncthing 是一款开源的文件同步工具&#xff0c;可让您在多个设备之间同步文件。 它适用于 Mac OS X、Windows、Linux、FreeBSD、Solaris、OpenBSD等系统。 可以通过浏览器访问来配置和监控该应用程序。 Syncthing 具有以下特点: 1、点对点同步 2、无需中央服务器 …

推三返一,七星创客模式激活消费与分享热情

七星创客模式&#xff0c;作为一种创新的消费与营销融合策略&#xff0c;正悄然改变着传统商业生态的运作方式。其核心精髓“先消费后返利”&#xff0c;不仅颠覆了消费者的传统购物体验&#xff0c;还巧妙地在促进消费与激励分享之间搭建起了一座桥梁。这一模式通过随机返佣的…

【CT】LeetCode手撕—8. 字符串转换整数 (atoi)

目录 题目1- 思路2- 实现⭐8. 字符串转换整数 (atoi)——题解思路 3- ACM 实现 题目 原题连接&#xff1a;8. 字符串转换整数 (atoi) 1- 思路 思路 x 的平方根 ——> 利用二分 ——> 二分的 check条件为 k^2 < x 2- 实现 ⭐8. 字符串转换整数 (atoi)——题解思路 …

C++ enum class转常量

当使用 enum class 时&#xff0c;它具有更强的类型安全性和隔离性&#xff0c;因此需要显式转换才能访问其底层整数值。 std::underlying_type_t 是一个类型别名&#xff0c;它返回枚举类型的底层类型。 to_underlying 函数提供了一种方便的方式来执行这种转换&#xff0c;特别…

LLM——langchain 与阿里 DashScop (通义千问大模型) 和 DashVector(向量数据库) 结合使用总结

文章目录 前言预览直接调用大模型使用 prompt template格式化输出使用上下文 RAG 增强检索 自定义 langchain AgentPromptTemplate 和 ChatPromptTemplate使用少量示例创建ChatPromptTemplate 前言 langchain 是一个面向大模型开发的框架&#xff0c;其中封装了很多核心组件&a…

Java数据结构-链表与LinkedList

链表 链表的概念 链表是一种物理存储结构上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的引用链接次序实现的。 通俗来说&#xff0c;相比较于顺序表&#xff08;物理上连续&#xff0c;逻辑上也连续&#xff09;&#xff0c;链表物理上不一定连续。 链表是…

代码随想录算法训练营第三十一天|动态规划:01背包理论基础、01背包理论基础(滚动数组)

动态规划&#xff1a;01背包理论基础 1. dp[i][j]: 表示0到i个物品放入容量为j的背包中&#xff0c;价值总和最大是多少 2. dp[i][j]的状态取决于&#xff0c;第i个物品要不要放入这个背包。 不放物品i&#xff1a;dp[i-1][j] (其实就是当物品i的重量大于背包j的重量时&…

2023年全国大学生电子信息竞赛E题——自动追踪系统(stm32和openmv+普通舵机)完美解决第四问

当时做的时候&#xff0c;当时看别人开源的23年的题&#xff0c;感觉一头雾水。两个字没思路。确实只有做了才会有思路。我这里清晰的整理出来思路。 1.第一问的复位问题就是写一个函数&#xff0c;如果按键按下&#xff0c;就进入&#xff0c;再按下就退出 当然这个复位是写死…

自学鸿蒙HarmonyOS的ArkTS语言<六>警告弹窗AlertDialog和列表选择弹窗ActionSheet

一、警告弹窗 ... Button(点击我可以获取一个警告弹窗).onClick(() > {AlertDialog.show({title: 我是弹窗标题,subtitle: 我是副标题,message: 我是弹窗内容,autoCancel: true, // 点击遮罩层是否关闭alignment: DialogAlignment.Center, // 弹窗位置offset: { dx: 0, dy:…

【ARMv8/v9 GIC 系列 5.8 -- SPI 中断路由到指定的 core 详细介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 SPI 中断路由配置寄存器字段代码示例Usage scenarioSPI 中断路由配置 在ARMv8和ARMv9架构下,当启用亲和性路由(Affinity Routing)时,系统寄存器GICD_IROUTER<n>用于提供具有INTID n的SPI的路由信息。n的最大值由公式(32*…

GAN生成对抗网络

GAN生成对抗网络 GANStable Diffusion GAN生成对抗网络子啊2015年横空出世&#xff0c;在当时掀起了巨大轰动&#xff0c;很多人预研它将开创一个全新的学习范式&#xff0c;当时有一个很流行的说法&#xff1a;样本不够&#xff0c;GAN来凑。现如今&#xff0c;大模型当道&…

网络编程!

网络编程 【1】网络开发架构 &#xff08; 1 &#xff09; C / S 架构 C : client &#xff08;客户端&#xff09; S: server (服务端) APP - 就是服务端 C/S 架构通过客户端软件和服务器之间的交互&#xff0c;实现了前端界面和后端业务逻辑的分离&#xff0c;提供了一种…

华为HCIP Datacom H12-821 卷35

单选题 通过display bgp routing-table命令输出的内容如图所示&#xff0c;那么以下关于该内容的描述&#xff0c;正确的是哪一项? A、去往192.168. 1. 0/24网段的路由的MED值是100 B、去往192.168.1. 0/24网段的路由是通过AS200学到的 C、去往192.168.1.0/24网段的路由是通…

<数据集>水稻叶片病害识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;1448张 标注数量(xml文件个数)&#xff1a;1448 标注数量(txt文件个数)&#xff1a;1448 标注类别数&#xff1a;3 标注类别名称&#xff1a;[BrownSpot,RiceBlast,BacterialBlight] 序号类别名称图片数框数1Rice…

LLM代理应用实战:构建Plotly数据可视化代理

如果你尝试过像ChatGPT这样的LLM&#xff0c;就会知道它们几乎可以为任何语言或包生成代码。但是仅仅依靠LLM是有局限的。对于数据可视化的问题我们需要提供一下的内容 描述数据:模型本身并不知道数据集的细节&#xff0c;比如列名和行细节。手动提供这些信息可能很麻烦&#…

基于YOLOV8的数粒机-农业应用辣椒种子计数计重双标质量解决方案

一:辣椒种子行业背景调查 中国辣椒年产量稳居世界第一,食辣人口超5亿。中国辣椒全球闻名,小辣椒长成大产业,带动全球食品行业腾飞。 在中国,“辣”是不少地方餐桌上的一大特色。从四川的麻辣火锅到湖南的剁椒鱼头再到陕西的油泼辣子面,由南到北,总有食客对辣有着独一份偏…

Clean My Mac X破解版,让您的电脑跟新的一样好用

Clean My Mac X破解版是一款专门为所有的苹果电脑用户而准备的系统优化工具&#xff0c;这款软件可以支持多种不同版本的Mac系统。我们可以通过Clean My Mac X免激活码破解版来将电脑系统里的各种垃圾文件和垃圾程序进行清理&#xff0c;从而确保系统能够快速运行。 Clean My …