题解 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

import java.util.Scanner;

public class Main {
    static String input;

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        input = in.next();
        System.out.println(replace(input));
    }

    private static String replace(String s) {
        int length = s.length();
        for (int i = 0; i < length; i++) {
            char c = s.charAt(i);
            if (c >= '0' && c <= '9') {
                String substring = s.substring(i);
                int getLong = getLong(substring);
                return s.substring(0, i) + "*" + s.substring(i,
                        i + getLong) + "*" + replace(s.substring(i + getLong));
            }
        }
        return s;
    }

    private static int getLong(String substring) {
        int length = substring.length();
        for (int i = 0; i < length; i++) {
            char c = substring.charAt(i);
            if (c > '9' || c < '0') {
                return i;
            }
        }
        return length;
    }
}

解题思路:

1, 使用递归的思想, 对输入字符串进行遍历, 对找到的第一数字字符串进行替换;

2, 对余下的部分继续进行遍历替换

全部评论

相关推荐

哞客37422655...:这就是真实社会,没有花里胡哨的安慰,让你感受到阶级分明,不浪费彼此时间。虽然露骨但是唉
点赞 评论 收藏
分享
等闲_:小红书基本不区分日常和暑期,你是应届实习时间够了就有转正机会,只要部门有hc
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务