题解 | #表示数字#用一个栈来记录上一个是什么类型
表示数字
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'; } }