Example005

题目

试编写一个算法,检查一个程序中的花括号、方括号和圆括号是否配对,若全部配对,则返回1,否则返回0。对于程序中出现的一对单引号或双引号内的字符不进行括号配对检查。39为单引号的ASCII 值,34为双引号的ASCII值,单引号和双引号如果出现则必成对出现。

分析

在算法中,扫描程序中的每一个字符,当扫描到每个左花括号(即 {)、左方括号(即 [)、左圆括号(即 ()字符时,令其进栈;当扫描到右花括号(即 })、右方括号(即 ])、右圆括号(即 ))时,则检查栈顶是否为相应的左括号,若是则做退栈处理,若不是则表明出现了语法错误,返回0。当扫描到程序文件结尾后,若栈为空,则表明没有发现括号配对错误,返回1;否则表明栈中还有未配对的括号,返回0。另外,对于一对单引号或双引号内的字符不进行括号配对检查。

这个题之前也做过一次,可参考:考研数据结构之栈(2.5)——练习题之编写一个算法,检查一个程序中的花括号、方括号和圆括号是否配对(C表示)

图解

a[c'ab[]}',{[(3[sdfe])345]aa}]'' 为例,执行步骤如下所示:

  • (1)扫描到的字符是 a,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (2)扫描到的字符是 [,是左方括号,所以将其入栈。继续判断下一个字符。此时栈如下图所示:

  • (3)此时扫描到的字符是 c,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (4)扫描到的字符是 ',是单引号字符。因为题目中明确表示引号是成对出现的,所以跳过这对单引号及单引号之内的内容。所以跳过 'ab[]}' 所有字符,即使引号之内有括号字符,也要跳过。
  • (5)此时扫描到的字符是 ,,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (6)此时扫描到的字符是 {,是左花括号字符,所以入栈。继续判断下一个字符。
  • (7)此时扫描到的字符是 [,是左方括号字符,所以入栈。继续判断下一个字符。
  • (8)此时扫描到的字符是 (,是左圆括号字符,所以入栈。继续判断下一个字符。此时栈如下图所示:

  • (9)此时扫描的字符是 3,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (10)此时扫描到的字符是 [,是左方括号字符,所以入栈。然后继续判断下一个字符。此时栈如下图所示:

  • (11)此时扫描到的字符是 s,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (12)此时扫描到的字符是 d,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (13)此时扫描到的字符是 f,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (14)此时扫描到的字符是 e,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (15)此时扫描到的字符是 ],将栈顶字符与当前扫描到的字符进行,正好栈顶字符是左方括号 [,与右方括号字符 ] 是一对,所以将栈顶元素出栈。然后继续判断下一个字符。此时栈如下图所示:

  • (16)此时扫描到的字符是 ),是右圆括号字符,将栈顶字符与当前扫描到的字符进行,正好栈顶字符是左圆括号 (,与右圆括号字符 ) 是一对,所以将栈顶元素出栈。然后继续判断下一个字符。此时栈如下图所示:

  • (17)此时扫描到的字符是 3,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (18)此时扫描到的字符是 4,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (19)此时扫描到的字符是 5,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (20)此时扫描到的字符是 ],将栈顶字符与当前扫描到的字符进行,正好栈顶字符是左方括号 [,与右方括号字符 ] 是一对,所以将栈顶元素出栈。然后继续判断下一个字符。此时栈如下图所示:

  • (21)此时扫描到的字符是 a,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (22)此时扫描到的字符是 a,不是括号字符,也非引号字符,所以继续判断下一个字符。
  • (23)此时扫描到的字符是 },将栈顶字符与当前扫描到的字符进行,正好栈顶字符是左花方括号 {,与右花括号字符 } 是一对,所以将栈顶元素出栈。然后继续判断下一个字符。此时栈如下图所示:

  • (24)此时扫描到的字符是 ],将栈顶字符与当前扫描到的字符进行,正好栈顶字符是左方括号 [,与右方括号字符 ] 是一对,所以将栈顶元素出栈。然后继续判断下一个字符。此时栈如下图所示:

  • (25)扫描到的字符是 ',是单引号字符。因为题目中明确表示引号是成对出现的,所以跳过这对单引号及单引号之内的内容。所以跳过 '' 所有字符,包括引号字符本身也要跳过。
  • (26)扫描完成,判断如果栈空则表示序列中所有括号配对成功,则返回 1 表示成功。如果栈非空,则表示括号配对失败。

C实现

核心代码:

/*** 判断字符数组中的括号是否配对* @param arr 字符数组* @param n 数组长度* @return 如果所有括号配对成功则返回 1,否则返回 0 表示不匹配*/
int isMatch(char arr[], int n) {// 声明栈并初始化,作为辅助解题数据结构使用SeqStack stack;init(&stack);// 变量,存放栈顶元素char top;// 变量,记录字符数组下标int i = 0;// 循环遍历包含括号的字符数组中的每个字符while (i < n) {// 为什么要用 ASCII 码值,因为不可能用一对单引号来引一个单引号字符,所以用数字来进行比较判断当前字符是否是单引号字符// 如果当前字符是单引号,则跳过一对单引号之后的所有字符,包括单引号本身if (arr[i] == 39) {// 跳过这对单引号中的第一个单引号i++;// 跳过单引号内的所有字符while (arr[i] != 39) {i++;}// 跳过这对单引号中的最后一个单引号i++;}// 如果当前字符是双引号,则跳过一对双引号之后的所有字符,包括双引号本身else if (arr[i] == 34) {// 跳过这对双引号中的第一个单引号i++;// 跳过双引号内的所有字符while (arr[i] != 34) {i++;}// 跳过这对双引号中的最后一个双引号i++;}// 如果是括号中的任何一个左括号else if (arr[i] == '(' || arr[i] == '[' || arr[i] == '{') {// 将其存入栈中push(&stack, arr[i]);// 然后继续比较下一个字符i++;}// 如果是右圆括号else if (arr[i] == ')') {// 获取栈顶元素getTop(stack, &top);// 如果栈顶元素是左圆括号,则正好配对 ()if (top == '(') {// 则将栈顶元素出栈pop(&stack, &top);} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果圆括号配对成功则继续比较下一个字符i++;}// 如果是右方括号else if (arr[i] == ']') {// 获取栈顶元素getTop(stack, &top);// 如果栈顶元素是左方括号,则正好配对 []if (top == '[') {// 则将栈顶元素出栈pop(&stack, &top);} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果方括号配对成功则继续比较下一个字符i++;}// 如果是右花括号else if (arr[i] == '}') {// 获取栈顶元素getTop(stack, &top);// 如果栈顶元素是花括号,则正好配对 {}if (top == '{') {// 则将栈顶元素出栈pop(&stack, &top);} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果花括号配对成功则继续比较下一个字符i++;}// 如果是其他字符,则跳过继续比较判断下一个字符else {i++;}}// 循环结束后,如果栈为空则表示所有括号配对成功;如果栈非空,则栈中一定还有左括号,那么配对失败if (isEmpty(stack)) {return 1;} else {return 0;}
}

完整代码:

#include <stdio.h>/*** 顺序栈最大存储的元素个数*/
#define MAXSIZE 100/*** 顺序栈结构体定义*/
typedef struct {/*** 数据域,数组,用来存储栈中元素*/char data[MAXSIZE];/*** 指针域,表示栈顶指针,实际上就是数组下标*/int top;
} SeqStack;/*** 初始化顺序栈,即将栈顶指针指向 -1 表示空栈* @param stack 顺序栈*/
void init(SeqStack *stack) {// 设定让栈顶指针指向 -1 表示为栈空stack->top = -1;
}/*** 判断顺序栈是否为空* @param stack 顺序栈* @return 如果顺序栈为空则返回 1,否则返回 0*/
int isEmpty(SeqStack stack) {// 只需要判断栈顶指针是否等于 -1 即可,如果是空栈则返回 1,不是空栈则返回 0if (stack.top == -1) {return 1;} else {return 0;}
}/*** 将元素入栈* @param stack 顺序栈* @param ele 元素值* @return 如果栈满则返回 0 表示入栈失败;如果插入成功则返回 1*/
int push(SeqStack *stack, char ele) {// 1.参数校验,如果栈满则不能入栈元素if (stack->top == MAXSIZE - 1) {// 如果栈满,则返回 0,表示不能入栈return 0;}// 2.先将栈顶指针加一,指向新空数组位置stack->top++;// 3.将新元素值填充到新位置中stack->data[stack->top] = ele;return 1;
}/*** 将元素出栈* @param stack 顺序栈* @param ele 用来保存出栈的元素* @return 如果栈空则返回 0 表示出栈失败;否则返回 1 表示出栈成功*/
int pop(SeqStack *stack, char *ele) {// 1.参数校验,栈空不能出栈if (stack->top == -1) {// 栈空,没有元素可出栈return 0;}// 2.用 ele 来保存顺序栈栈顶元素*ele = stack->data[stack->top];// 3.然后栈顶指针减一,表示出栈一个元素stack->top--;return 1;
}/*** 获取栈顶元素,但不出栈* @param stack 顺序栈* @param ele 用来保存出栈元素* @return 如果栈空则返回 0 表示出栈失败;否则返回 1 表示出栈成功*/
int getTop(SeqStack stack, char *ele) {// 1.参数校验,如果栈空则不能出栈if (stack.top == -1) {// 栈空,没有元素可出栈return 0;}// 2.保存栈顶元素返回*ele = stack.data[stack.top];return 1;
}/*** 判断字符数组中的括号是否配对* @param arr 字符数组* @param n 数组长度* @return 如果所有括号配对成功则返回 1,否则返回 0 表示不匹配*/
int isMatch(char arr[], int n) {// 声明栈并初始化,作为辅助解题数据结构使用SeqStack stack;init(&stack);// 变量,存放栈顶元素char top;// 变量,记录字符数组下标int i = 0;// 循环遍历包含括号的字符数组中的每个字符while (i < n) {// 为什么要用 ASCII 码值,因为不可能用一对单引号来引一个单引号字符,所以用数字来进行比较判断当前字符是否是单引号字符// 如果当前字符是单引号,则跳过一对单引号之后的所有字符,包括单引号本身if (arr[i] == 39) {// 跳过这对单引号中的第一个单引号i++;// 跳过单引号内的所有字符while (arr[i] != 39) {i++;}// 跳过这对单引号中的最后一个单引号i++;}// 如果当前字符是双引号,则跳过一对双引号之后的所有字符,包括双引号本身else if (arr[i] == 34) {// 跳过这对双引号中的第一个单引号i++;// 跳过双引号内的所有字符while (arr[i] != 34) {i++;}// 跳过这对双引号中的最后一个双引号i++;}// 如果是括号中的任何一个左括号else if (arr[i] == '(' || arr[i] == '[' || arr[i] == '{') {// 将其存入栈中push(&stack, arr[i]);// 然后继续比较下一个字符i++;}// 如果是右圆括号else if (arr[i] == ')') {// 获取栈顶元素getTop(stack, &top);// 如果栈顶元素是左圆括号,则正好配对 ()if (top == '(') {// 则将栈顶元素出栈pop(&stack, &top);} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果圆括号配对成功则继续比较下一个字符i++;}// 如果是右方括号else if (arr[i] == ']') {// 获取栈顶元素getTop(stack, &top);// 如果栈顶元素是左方括号,则正好配对 []if (top == '[') {// 则将栈顶元素出栈pop(&stack, &top);} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果方括号配对成功则继续比较下一个字符i++;}// 如果是右花括号else if (arr[i] == '}') {// 获取栈顶元素getTop(stack, &top);// 如果栈顶元素是花括号,则正好配对 {}if (top == '{') {// 则将栈顶元素出栈pop(&stack, &top);} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果花括号配对成功则继续比较下一个字符i++;}// 如果是其他字符,则跳过继续比较判断下一个字符else {i++;}}// 循环结束后,如果栈为空则表示所有括号配对成功;如果栈非空,则栈中一定还有左括号,那么配对失败if (isEmpty(stack)) {return 1;} else {return 0;}
}int main() {char arr[] = "a[c'ab[]}',{[(3[sdfe])345]aa}]''";int n = 32;int match;match = isMatch(arr, n);printf("%s 中括号是否配对:%d", arr, match);
}

执行结果:

a[c'ab[]}',{[(3[sdfe])345]aa}]'' 中括号是否配对:1

Java实现

核心代码:

    /*** 判断指定字符序列中的括号是否配对成功** @param arr 字符序列* @return 如果配对成功则返回 1,否则返回 0 表示失败* @throws Exception 如果栈满再入栈则抛出异常*/public static int isMatch(char[] arr) throws Exception {// 声明栈并初始化,作为辅助解题数据结构使用SeqStack stack = new SeqStack();stack.init();// 变量,存放栈顶元素char top;// 变量,记录字符数组下标int i = 0;// 变量,即数组长度int n = arr.length;// 循环遍历包含括号的字符数组中的每个字符while (i < n) {// 为什么要用 ASCII 码值,因为不可能用一对单引号来引一个单引号字符,所以用数字来进行比较判断当前字符是否是单引号字符// 如果当前字符是单引号,则跳过一对单引号之后的所有字符,包括单引号本身if (arr[i] == 39) {// 跳过这对单引号中的第一个单引号i++;// 跳过单引号内的所有字符while (arr[i] != 39) {i++;}// 跳过这对单引号中的最后一个单引号i++;}// 如果当前字符是双引号,则跳过一对双引号之后的所有字符,包括双引号本身else if (arr[i] == 34) {// 跳过这对双引号中的第一个单引号i++;// 跳过双引号内的所有字符while (arr[i] != 34) {i++;}// 跳过这对双引号中的最后一个双引号i++;}// 如果是括号中的任何一个左括号else if (arr[i] == '(' || arr[i] == '[' || arr[i] == '{') {// 将其存入栈中stack.push(arr[i]);// 然后继续比较下一个字符i++;}// 如果是右圆括号else if (arr[i] == ')') {// 获取栈顶元素top = stack.getTop();// 如果栈顶元素是左圆括号,则正好配对 ()if (top == '(') {// 则将栈顶元素出栈stack.pop();} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果圆括号配对成功则继续比较下一个字符i++;}// 如果是右方括号else if (arr[i] == ']') {// 获取栈顶元素top = stack.getTop();// 如果栈顶元素是左方括号,则正好配对 []if (top == '[') {// 则将栈顶元素出栈stack.pop();} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果方括号配对成功则继续比较下一个字符i++;}// 如果是右花括号else if (arr[i] == '}') {// 获取栈顶元素top = stack.getTop();// 如果栈顶元素是花括号,则正好配对 {}if (top == '{') {// 则将栈顶元素出栈stack.pop();} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果花括号配对成功则继续比较下一个字符i++;}// 如果是其他字符,则跳过继续比较判断下一个字符else {i++;}}// 循环结束后,如果栈为空则表示所有括号配对成功;如果栈非空,则栈中一定还有左括号,那么配对失败if (stack.isEmpty()) {return 1;} else {return 0;}}

完整代码:

public class Test {public static void main(String[] args) throws Exception {String str = "a[c'ab[]}',{[(3[sdfe])345]aa}]''";int result;result = isMatch(str.toCharArray());System.out.println(str + "中括号是否配对:" + result);}/*** 判断指定字符序列中的括号是否配对成功** @param arr 字符序列* @return 如果配对成功则返回 1,否则返回 0 表示失败* @throws Exception 如果栈满再入栈则抛出异常*/public static int isMatch(char[] arr) throws Exception {// 声明栈并初始化,作为辅助解题数据结构使用SeqStack stack = new SeqStack();stack.init();// 变量,存放栈顶元素char top;// 变量,记录字符数组下标int i = 0;// 变量,即数组长度int n = arr.length;// 循环遍历包含括号的字符数组中的每个字符while (i < n) {// 为什么要用 ASCII 码值,因为不可能用一对单引号来引一个单引号字符,所以用数字来进行比较判断当前字符是否是单引号字符// 如果当前字符是单引号,则跳过一对单引号之后的所有字符,包括单引号本身if (arr[i] == 39) {// 跳过这对单引号中的第一个单引号i++;// 跳过单引号内的所有字符while (arr[i] != 39) {i++;}// 跳过这对单引号中的最后一个单引号i++;}// 如果当前字符是双引号,则跳过一对双引号之后的所有字符,包括双引号本身else if (arr[i] == 34) {// 跳过这对双引号中的第一个单引号i++;// 跳过双引号内的所有字符while (arr[i] != 34) {i++;}// 跳过这对双引号中的最后一个双引号i++;}// 如果是括号中的任何一个左括号else if (arr[i] == '(' || arr[i] == '[' || arr[i] == '{') {// 将其存入栈中stack.push(arr[i]);// 然后继续比较下一个字符i++;}// 如果是右圆括号else if (arr[i] == ')') {// 获取栈顶元素top = stack.getTop();// 如果栈顶元素是左圆括号,则正好配对 ()if (top == '(') {// 则将栈顶元素出栈stack.pop();} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果圆括号配对成功则继续比较下一个字符i++;}// 如果是右方括号else if (arr[i] == ']') {// 获取栈顶元素top = stack.getTop();// 如果栈顶元素是左方括号,则正好配对 []if (top == '[') {// 则将栈顶元素出栈stack.pop();} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果方括号配对成功则继续比较下一个字符i++;}// 如果是右花括号else if (arr[i] == '}') {// 获取栈顶元素top = stack.getTop();// 如果栈顶元素是花括号,则正好配对 {}if (top == '{') {// 则将栈顶元素出栈stack.pop();} else {// 如果不是则一定不配对,那么整个程序也配对失败,返回 0return 0;}// 如果花括号配对成功则继续比较下一个字符i++;}// 如果是其他字符,则跳过继续比较判断下一个字符else {i++;}}// 循环结束后,如果栈为空则表示所有括号配对成功;如果栈非空,则栈中一定还有左括号,那么配对失败if (stack.isEmpty()) {return 1;} else {return 0;}}
}

SeqStack

public class SeqStack {/*** 常量,顺序栈所能容纳的最大元素个数*/private final int MAXSIZE = 100;/*** 声明一个顺序栈*/private Stack stack;/*** 初始化顺序栈*/public void init() {// 实例化栈对象stack = new Stack();// 为数据域分配空间stack.data = new char[MAXSIZE];// 将顺序栈的栈顶指针指向 -1 表示空栈stack.top = -1;}/*** 判断顺序栈是否为空** @return 如果顺序栈为空则返回 true,否则返回 false*/public boolean isEmpty() {// 规定了 -1 表示空栈,所以只需要判断栈顶指针是否等于 -1 即可return stack.top == -1;}/*** 将指定元素入栈** @param ele 指定元素* @throws Exception 如果栈满则不能入栈,抛出此异常*/public void push(char ele) throws Exception {// 1.参数校验,如果栈满则不能入栈,抛出异常if (stack.top == MAXSIZE - 1) {// 因为栈顶指针 top 存储的是数组下标,所以判断是否等于 MAXSIZE-1throw new Exception("栈已满,不能再插入!");}// 2.先栈顶指针加 1,因为原栈顶指针处已经存储了元素,所以加一指向新的空位置stack.top++;// 3.在新的空位置处插入新元素,即为指定下标的数组元素赋值stack.data[stack.top] = ele;}/*** 将栈顶元素出栈** @return 栈顶元素* @throws Exception 如果栈空则不能出栈,抛出此异常*/public char pop() throws Exception {// 1.参数校验,如果栈空则不能出栈,抛出异常if (stack.top == -1) {// 因为栈空的定义是栈顶指针为 -1,所以如果栈顶指针为 -1 那么就是空栈,就不能出栈元素throw new Exception("栈为空,不能出栈元素!");}// 2.记录栈顶元素,因为要将该元素返回,即要出栈的元素char result = stack.data[stack.top];// 3.栈顶指针减一,因为原栈顶元素已经出栈了,栈中元素个数减一stack.top--;return result;}/*** 获取栈顶元素,但不出栈** @return 栈顶元素* @throws Exception 如果栈空则不能出栈,抛出此异常*/public char getTop() throws Exception {// 1.参数校验,如果栈空则不能出栈,抛出异常if (stack.top == -1) {throw new Exception("栈为空,不能获取栈顶元素!");}// 2.直接返回栈顶元素,但不出栈return stack.data[stack.top];}/*** 顺序栈中元素个数** @return 栈中元素个数*/public int size() {// top 表示栈顶指针,实际上就是数组 data 的下标,所以实际元素个数就是下标加一// 即使是空栈 top=-1,那么最后也会返回 0 表示元素个数为零个return stack.top + 1;}/*** 打印顺序栈中所有元素,从栈顶到栈底*/public void print() {System.out.print("[");for (int i = stack.top; i >= 0; i--) {if (i != stack.top) {System.out.print(", ");}System.out.print(stack.data[i]);}System.out.print("]\n");}/*** 清空顺序栈*/public void clear() {// 直接将栈顶指针指向 -1 即可表示空栈,不用重置栈中已有元素的值,因为顺序栈操作只跟栈顶指针有关stack.top = -1;}
}/*** 栈定义*/
class Stack {/*** 顺序栈用来存储元素的数组*/char[] data;/*** 记录顺序栈的栈顶指针,即数组下标*/int top;
}

执行结果:

a[c'ab[]}',{[(3[sdfe])345]aa}]''中括号是否配对:1

栈练习之Example005-检查一个程序中的花括号、方括号和圆括号是否配对相关推荐

  1. “操作无法完成因为其中的文件夹或文件已在另一个程序中打开”解决办法

    在windows系统中,我们经常会遇到这样一个问题:删除某一个文件或者文件夹,被提醒:操作无法完成,因为其中的文件夹或文件已在另一个程序中打开. 这个时候我们一般会先检查是否真的有程序或者文件打开了没 ...

  2. Win7-其中的文件夹或文件已在另一个程序中打开

    Win7-其中的文件夹或文件已在另一个程序中打开 如何解决Win7系统在删除或移动文件时提示,"操作无法完成,因为其中的文件夹或文件已在另一个程序中打开,请关闭该文件夹或文件,然后重试&qu ...

  3. win10删除文件时显示文件已经在另一个程序中打开,无法删除

    前言 今天卸载一个应用程序,卸载完成后想将那个文件夹给删除掉,结果已删除,就报了上述了这样一个弹窗出来.该文件夹在另外一个应用程序中打开,无法删除.这不是恶心人吗.现在教大家一种方法来删除这种文件夹 ...

  4. 文件夹或文件已在另一个程序中打开,解决办法

    在删除某一文件时,总会遇到一个提示:"操作无法完成,文件夹或文件已在另一个程序中打开",但又不清楚文件在哪里打开或者把文件全部关闭仍旧如此提示,此时,可试试下面的解决方法. 打开' ...

  5. 网络里有两个计算机怎么删掉其中的一个,文件删不掉显示已在另一个程序中打开怎么办删除?...

    有时候我们想删除电脑上的某个文件或者文件夹的时候,会弹出一个对话框写着,操作无法完成,因为其中的文件夹或文件已在另一个程序中打开,请关闭该 文件夹或文件然后重试,这多半是由于文件夹里面文件正在被某个程 ...

  6. 无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...

    在删除文件夹的时候,可能会遇到文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开,请关闭该文件夹或或文件,然后重试.这类无法关闭删除文件夹的情况,如下图所示. 如何解决 解决这 ...

  7. DevOps进阶(十)Jenkins组包时解决无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...

    在删除文件夹的时候,可能会遇到文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开,请关闭该文件夹或或文件,然后重试.这类无法关闭删除文件夹的情况,如下图所示. 解决这个的关键是 ...

  8. ldslite是什么启动项_电脑删除文件夹时提示“已在另一个程序中打开”的解决办法...

    我们在使用电脑删除某个文件夹,特别是一些程序卸载后的残留文件夹时,可能会出现"操作无法完成,因为其中的文件夹或文件已在另一个程序中打开"的弹窗提示.有些是可以在任务管理器中关闭某个 ...

  9. 操作无法完成因为其中的文件夹或文件已在另一个程序中打开怎么解决

    有不少朋友们在操作系统的时候,无法继续进行下一步操作.系统提示操作无法完成,因为其中的文件夹或文件已在另一个程序中打开.这种时候应该如何解决这个问题呢?今天小编就来给大家详细说明一下吧. 具体步骤如下 ...

最新文章

  1. 4K P60 444 相关的事
  2. 七夕节脱单“神助攻”!AI教你写情话
  3. iconv文件编码判断转换
  4. python绘制雷达图-使用Python绘制雷达图
  5. 线上分享 | AI产品经理之路——从入门到进阶
  6. LTP 4.0!单模型完成6项自然语言处理任务
  7. 包和模块_月隐学python第13课
  8. socket 端口和地址复用
  9. redis和mysql数据不一致_高并发下为什么 redis 和数据库不一致?怎么解决?
  10. html5游戏开发box2djs,Box2D.js简易示例
  11. 质数筛(洛谷P5736题题解,Java语言描述)
  12. 动态加载子节点_省市区递归嵌套子流程动态选择实现
  13. 对于scanf的新理解
  14. node.js如何制作命令行工具(一)
  15. window Jconsole链接到CenOS 监控Tomcat
  16. 远古有圆孔的头颅可能是穿越者
  17. php网站建设步骤,「php环境搭建」简单6个步骤教会你快速搭建一个网站(windows环境) - seo实验室...
  18. miRNA数据库篇——Rfam数据库
  19. Java Web目前主流的框架以及正在兴起的框架
  20. 计算机怎么算平均分公式,平均分怎么算

热门文章

  1. Pycharm全局搜索关键字
  2. 十二、中间系统到中间系统IS-IS(Intermediate System-to-Intermediate System)
  3. 我奋斗了18年不是为了和你壹起喝咖啡
  4. 【Person Re-ID】AlignedReID: Surpassing Human-Level Performance in Person Re-Identification
  5. 数据结构与算法实验 实验6:二叉树ADT的二叉链式实现 (由完全前序序列创建二叉树 / 求二叉树的节点数/树高/叶子节点数 /先序中序后序层序遍历)
  6. 帝国cms如何导入php模板,帝国CMS模板组导入导出更换模板
  7. r7525服务器电源管理系统,Dell EMC旗舰级双路AMD机架服务器PowerEdge R7525一览
  8. php 文件夹打包zip压缩包
  9. RPM软件包和YUM软件仓库的实例
  10. oracle生僻字解决方案