问题描述 l正在出题,新建了一个word文档,想不好取什么名字,身旁一人惊问:“你出的题目叫《新建microsoft word文档》吗?”,l大喜,一拍桌子,说:“好,就叫这个名字了。” 仔细观察,当你新建一个word文档时,会得到一个名为“新建 microsoft word 文档.doc”的文件,再新建一个,则名为“新建 microsoft word 文档(2).doc”,再新建,便是“新建 microsoft word 文档(3).doc”。不断新建,编号不断递增。倘若你现在新建了三个文档,然后删除了“新建 microsoft word 文档(2).doc”,再新建就又会得到一个“新建 microsoft word 文档(2).doc”。
import java.util.Scanner;import java.util.TreeSet;public class Main { static boolean[] words = new boolean[2012]; static TreeSet deleted = new TreeSet(); public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int cnt = in.nextInt(); int id = 1; String op; for ( int i = 0 ; i < cnt ; i++){ op = in.next(); if ("New".equals(op)){ if ( deleted.size() == 0){ words[id] = true; System.out.println(id++); }else{ int t = deleted.pollFirst(); words[t] = true; System.out.println(t); } }else if("Delete".equals(op)){ int index = in.nextInt(); if (words[index]){ System.out.println("Successful"); words[index] = false; deleted.add(index); }else{ System.out.println("Failed"); } } } in.close(); }}
Selection Range Provider是VSCode中用于实现层级化代码选择的API,通过注册provideSelectionRanges方法,按光标位置从内到外逐层扩展选择范围,如从变量名扩展至函数体;需结合AST解析构建准确的SelectionRange链式结构以提升选择智能性。 在 …