如何在华为OD机试中获得满分?Java实现【表示数字】一文详解!

news/2024/7/2 23:37:48

请添加图片描述

✅创作者:陈书予
🎉个人主页:陈书予的个人主页
🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区
🌟专栏地址: Java华为OD机试真题(2022&2023)

文章目录

  • 1. 题目描述
  • 2. 输入描述
  • 3. 输出描述
  • 4. Java算法源码
  • 5. 测试
  • 6.解题思路

1. 题目描述

将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。

数据范围:字符串长度满足1≤n≤100 。

2. 输入描述

输入一个字符串。

3. 输出描述

字符中所有出现的数字前后加上符号“*”,其他字符保持不变。

4. Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    while (sc.hasNextLine()) {
        System.out.println(markNum(sc.nextLine()));
    }
}

private static String markNum(String pInStr) {
    StringBuilder res = new StringBuilder();
    for (int i = 0; i < pInStr.length(); ) {
        if (pInStr.charAt(i) >= '0' && pInStr.charAt(i) <= '9') {
            res.append('*');
            while (i < pInStr.length() && pInStr.charAt(i) >= '0' && pInStr.charAt(i) <= '9') {
                res.append(pInStr.charAt(i++));
            }
            res.append('*');
        } else {
            res.append(pInStr.charAt(i++));
        }
    }
    return res.toString();
}

5. 测试

在这里插入图片描述

6.解题思路

  1. 读取输入,将字符串存储在变量pInStr中。
  2. 创建一个StringBuilder对象res用于存储结果。
  3. 遍历字符串pInStr的每个字符,判断是否为数字。
    • 如果当前字符是数字,则在res中添加字符'*'
    • 接着,将连续的数字添加到res中,直到遇到非数字字符为止。
    • 最后,在res中添加字符'*'
    • 如果当前字符不是数字,则直接将其添加到res中。
  4. res转换为字符串并返回作为结果。

在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1178912.html

相关文章

[元带你学: eMMC协议详解 10] Device 识别流程 与 中断模式

依JEDEC eMMC 5.1及经验辛苦整理&#xff0c;付费内容&#xff0c;禁止转载。 所在专栏 《元带你学: eMMC协议详解》 全文2700字&#xff0c;重点需掌握设备识别过程&#xff08;CMD1 -> CMD2 -> CMD3&#xff09;, 这很常用&#xff0c; 也是最容易出现异常的地方。其他…

Linux(基础IO详解)

在基础IO这篇博客中&#xff0c;我们将了解到文件系统的构成&#xff0c;以及缓冲区究竟是个什么东东&#xff0c;我们都知道缓冲区&#xff0c;有时也谈论缓冲区&#xff0c;但不一定真的去深入了解过缓冲区。为什么内存和磁盘交互速度如此之慢&#xff1f;为什么都说Linux中一…

【LeetCode热题100】打开第6天:正则表达式匹配

文章目录 正则表达式匹配⛅前言&#x1f512;题目&#x1f511;题解 正则表达式匹配 ⛅前言 大家好&#xff0c;我是知识汲取者&#xff0c;欢迎来到我的LeetCode热题100刷题专栏&#xff01; 精选 100 道力扣&#xff08;LeetCode&#xff09;上最热门的题目&#xff0c;适合…

【刷题之路】LeetCode 2073. 买票需要的时间

【刷题之路】LeetCode 2073. 买票需要的时间 一、题目描述二、解题1、方法1——记录每个人需要的时间1.1、思路分析1.2、代码实现 2、方法2——队列记录下标2.1、思路分析2.2、先将队列实现一下2.3、代码实现 一、题目描述 原题连接&#xff1a; 2073. 买票需要的时间 题目描述…

序列化_原理与应用

关键字&#xff1a;序列化,java,proto,json,字节序列,字节数组,byte array,serialize序列化简介 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 如在内存中的java对象&#xff08;本是方便JVM使用的格式&#xff09;序列化为硬盘或是网络传输…

关于linux系统can收发,以及jetson系列can收发的说明,以及SN65HVD230 CAN board和MCP2515和TJA1050的区别是什么?

1&#xff0c;jetson orin、Tx2有can处理器&#xff0c;没有收发器 所以官方推荐用SN65HVD230 CAN board就可以了。理论上单独的TJA1050也是可以的。。。 2&#xff0c;如果本身没有can像jetson nano、香橙派这样&#xff0c;就需要使用MCP2515和TJA1050的结合体了 SN65HVD230…

HCIA-MSTP替代技术之链路捆绑(手工模式)

目录 1&#xff0c;网络的可靠性需求 2&#xff0c;链路聚合原理 链路聚合&#xff1a; 聚合组(Link Aggregation Group&#xff0c;LAG)&#xff1a; 成员接口和成员链路&#xff1a; 活动接口和活动链路&#xff1a; 非活动接口和非活动链路&#xff1a; 聚合模式&…

termux的一些问题

我的电脑过安检的时候&#xff0c;竟然被卡住&#xff0c;压坏了。没办法&#xff0c;有需要电脑工作。我就用家里的平板电脑工作。我首先安装了termux&#xff0c;但是遇到这些问题。 (1)我在平板电脑上安装了termux后&#xff0c;我想通过手机登陆到平板电脑&#xff0c;但是…