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

2025-2-12算法打卡

一,54. 替换数字

1.题目描述:

给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。 例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。

2.实例:

输入示例
a1b2c3
输出示例
anumberbnumbercnumber

3.思路:

首先扩充数组到每个数字字符替换成 "number" 之后的大小。

然后从后向前替换数字字符,也就是双指针法,过程如下:i指向新长度的末尾,j指向旧长度的末尾。

4:代码:

import java.util.Scanner;

public class Main {
    
    public static String replaceNumber(String s) {
        int count = 0; // 统计数字的个数
        int sOldSize = s.length();
        for (int i = 0; i < s.length(); i++) {
            if(Character.isDigit(s.charAt(i))){
                count++;
            }
        }
        // 扩充字符串s的大小,也就是每个空格替换成"number"之后的大小
        char[] newS = new char[s.length() + count * 5];
        int sNewSize = newS.length;
        // 将旧字符串的内容填入新数组
        System.arraycopy(s.toCharArray(), 0, newS, 0, sOldSize);
        // 从后先前将空格替换为"number"
        for (int i = sNewSize - 1, j = sOldSize - 1; j < i; j--, i--) {
            if (!Character.isDigit(newS[j])) {
                newS[i] = newS[j];
            } else {
                newS[i] = 'r';
                newS[i - 1] = 'e';
                newS[i - 2] = 'b';
                newS[i - 3] = 'm';
                newS[i - 4] = 'u';
                newS[i - 5] = 'n';
                i -= 5;
            }
        }
        return new String(newS);
    };
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        System.out.println(replaceNumber(s));
        scanner.close();
    }
}


http://www.kler.cn/a/548444.html

相关文章:

  • PMP--冲刺--流程图
  • ram的使用——初始化很重要
  • 快速入门 Tailwind CSS:现代前端开发的利器
  • [C++]多态详解
  • 掌握SQL多表连接查询_轻松处理复杂数据关系
  • 【设计模式】【行为型模式】解释器模式(Interpreter)
  • Datawhale 数学建模导论二 笔记1
  • 系统可观测性(1)基础概念
  • 深度解析2025最新微服务版本特性
  • 数据结构 day05
  • 【机器学习】常见采样方法详解
  • DeepSeek赋能制造业:图表可视化从入门到精通
  • 《On Java进阶卷》阅读笔记(五)
  • 无人机遥感图像拼接软件有哪些?无人机遥感图像采集流程;遥感图像拼接的一般流程
  • 【原创】解决vue-element-plus-admin无法实现下拉框动态控制表单功能,动态显隐输入框
  • Github 2025-02-14 Java开源项目日报 Top10
  • Svelte 最新中文文档翻译(8)—— @html、@const、@debug 模板语法
  • 工控网络安全架构
  • 【2.10-2.16学习周报】
  • 深度学习框架探秘|TensorFlow:AI 世界的万能钥匙