题解 | #表示数字#

表示数字

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //用StringBuilder 节约资源
        StringBuilder sb=new StringBuilder(in.nextLine());
        int n=sb.length();
        char ch;
        boolean shouldi=true;//判断是否新数字
        for(int i=n-1;i>=0;i--){//从后往前循环,不破坏待判断的地方的索引顺序
            ch=sb.charAt(i);
            if(ch>=48 && ch<=57){
                if(shouldi){
                    //这里是数字,前面是非数字就得加后缀*
                    sb.insert(i+1,"*");
                    shouldi=!shouldi;
                }
                //索引0是数字这里就结束循环了,需要给前面加个*
                if(i==0)
                    sb.insert(0,"*");
            }else{
                
                if(!shouldi){
                    //这里是非数字,前面是数字就得加前缀*
                    sb.insert(i+1,"*");
                    shouldi=!shouldi;
                }
            }
            
        }
        System.out.println(sb);
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务