【20 Preguntas】Paréntesis efectivos

1. Introducción al tema

Paréntesis válidos para Leetcode 20: https://leetcode.cn/problems/valid-parentheses/

inserte la descripción de la imagen aquí

2. Ideas para resolver problemas

Esta pregunta utiliza principalmente el conocimiento de tablas hash y pilas. Debe estar muy familiarizado con el uso de hash y pilas en Java.

3. Código completo

Nota: El siguiente código es un código completo que se puede usar para la autoevaluación. Para cargar la parte ac de Likou, simplemente pegue la función isValid.

import java.util.Deque;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

public class Solution {
    
    

	public static void main(String[] args) {
    
    
		Solution obj = new Solution();
		boolean res = obj.isValid("(()())");
		System.out.println(res);
	}
	
	public boolean isValid(String s) {
    
    
		int n = s.length();
		if(n%2==1) {
    
    
			return false;
		}
		
		Map<Character,Character>map = new HashMap<Character,Character>();
		map.put(')', '(');
		map.put('}', '{');
		map.put(']', '[');
		
		Deque<Character>stack = new LinkedList<Character>();
		for(int i=0;i<s.length();i++) {
    
    
			char ch = s.charAt(i);
			if(map.containsKey(ch)) {
    
    
				if(stack.isEmpty()||stack.peek()!=map.get(ch)) {
    
    
					return false;
				}
				stack.pop();
			}else {
    
    
				stack.push(ch);
			}
		}
		return stack.isEmpty();
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_40968179/article/details/130397001
Recomendado
Clasificación