题解 | #表示数字#用一个栈来记录上一个是什么类型

表示数字

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        Stack<Character> s = new Stack();
        StringBuilder sb = new StringBuilder();
	  //处理头
        if(isDigit(input.charAt(0))){
            sb.append("*");
        }else{

        }
        s.push(input.charAt(0));
        sb.append(input.charAt(0));
        for(int i = 1 ; i < input.length() ; i++){
            // 如果当前是数字
            if(isDigit(input.charAt(i))){
                //栈顶也是数字
                if(isDigit(s.peek())){
				  //什么都补左
                }
                else{
                    sb.append("*");
                }
            }else{
                 //栈顶是数字
                if(isDigit(s.peek())){
                    sb.append("*");
                }
                else{
                }
            }
            sb.append(input.charAt(i));
            s.push(input.charAt(i));
        }
        if(isDigit(input.charAt(input.length()-1)))
            sb.append("*");
        System.out.println(sb.toString());
        

    }
    static boolean isDigit(char c ){
        return c >='0' && c <= '9';
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务