栈的应用 删除字符串中b和ac

删除字符串中b和ac,保证删除后的结果不包含b和ac

解题方法:栈

public static void main(String[] args) {
//		String str="acbac";
//		String str="aaaac";
		String str="ababc";
		String subString = getSubString(str);
		System.out.println("删除以后的字符串:"+subString);
	}
	public static String getSubString(String str){
		Stack<Character> stack=new Stack<>();
		for(int i=0;i<str.length();i++){
			char c = str.charAt(i);
			if(c=='b'){
				continue;
			}
			if(stack.isEmpty()){
				stack.push(c);
				continue;
			}
			Character peek = stack.peek();
			if(c=='c'){
				if(peek=='a'){
					stack.pop();
				}else{
					stack.push(c);
				}
			}else{
				stack.push(c);
			}
		}
		StringBuilder sb=new StringBuilder();
		while(stack.size()>0){
			Character peek2= stack.peek();
			sb.append(peek2);
			stack.pop();
		}

		return sb.reverse().toString();
	}

猜你喜欢

转载自blog.csdn.net/u011243684/article/details/85073948