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

【代码随想录 字符串3.替换数字】

在这里插入图片描述
第一次自己写的,直接调用了库函数,但是直接调用库函数显得很傻逼且没有意义。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        s = s.replace("0", "number");
        s = s.replace("1", "number");
        s = s.replace("2", "number");
        s = s.replace("3", "number");
        s = s.replace("4", "number");
        s = s.replace("5", "number");
        s = s.replace("6", "number");
        s = s.replace("7", "number");
        s = s.replace("8", "number");
        s = s.replace("9", "number");
        System.out.println(s);
 
    }
 
 

正解;

package code;

import code.Solution;

import java.util.Scanner;



public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        char[] ch = s.toCharArray();
        int len = ch.length;
        for (int i = 0; i < ch.length; i++) {
            if(ch[i] >='0' && ch[i] <= '9'){
                len +=5;
            }
        }
        char []res = new char[len];

        int i = len -1;
        for (int j = ch.length-1 ; j>=0 ; j--) {
            if(ch[j]>='0' && ch[j]<='9'){
                res [i--] ='r';
                res [i--] ='e';
                res [i--] ='b';
                res [i--] ='m';
                res [i--] ='u';
                res [i--] ='n';
            }else{
                res[i--] = ch[j];
            }
        }

        System.out.println(new String(res));

    }


}





题解。

// 为了还原题目本意,先把原数组复制到扩展长度后的新数组,然后不再使用原数组、原地对新数组进行操作。
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int len = s.length();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) >= 0 && s.charAt(i) <= '9') {
                len += 5;
            }
        }
        
        char[] ret = new char[len];
        for (int i = 0; i < s.length(); i++) {
            ret[i] = s.charAt(i);
        }
        for (int i = s.length() - 1, j = len - 1; i >= 0; i--) {
            if ('0' <= ret[i] && ret[i] <= '9') {
                ret[j--] = 'r';
                ret[j--] = 'e';
                ret[j--] = 'b';
                ret[j--] = 'm';
                ret[j--] = 'u';
                ret[j--] = 'n';
            } else {
                ret[j--] = ret[i];
            }
        }
        System.out.println(ret);
    }
}

由于字符串不方便进行定点删除,所以要转化到char数组来进行操作。

后面的遍历要从最后来进行,如果从前面进行也行。
但是题解的方法模拟了题意,题解中就不能从前面进行。

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

相关文章:

  • C++中为什么要使用nullptr而不是null
  • 数字电子技术基础(三十九)——显示译码器
  • 基于CAPL语法实现对程控电源的控制(通用DLL版,支持TCP协议,RS232协议,SCPI指令)
  • 对解释器模式的理解
  • 互联网三高架构设计
  • JAVA对象创建过程和类加载过程
  • 整车CAN网络和CANoe
  • 如何使用Python自动化测试工具Selenium进行网页自动化?
  • Java类加载机制深度解析
  • 蓝桥杯基础算法-字符串与集合
  • 瑞萨RA4M2使用心得-KEIL5的第一次编译
  • pipwire cpu 100%使用率的问题
  • 大模型学习五:‌DeepSeek Janus-Pro-7B 多模态半精度本地部署指南:环境是腾讯cloudstudio高性能GPU 16G免费算力
  • 定制一款国密浏览器(3):修改浏览器应用程序安装路径
  • Java 基础-31-枚举-认识枚举
  • 每日一题(小白)回溯篇4
  • ngx_timezone_update
  • Python----计算机视觉处理(Opencv:道路检测之车道线拟合)
  • OpenSceneGraph 中的 osg::Transform详解
  • 图片尺寸修改软件下载
  • 车载ECU底软测试:方法与技术的深度解析
  • 利用NumPy核心知识点优化TensorFlow模型训练过程
  • 大厂机考——各算法与数据结构详解
  • ERP系统五大生产模式概述
  • Python如何将已经安装的包导出为 .whl 文件以便离线使用
  • MySQL Workbench 数据库复制迁移
  • 模运算:数字世界中的时空扭曲法则——从密码学到量子计算的跨维演绎
  • Vue中webpack的使用
  • LeetCode栈 155. 最小栈
  • 第39周:文献阅读