Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,844 questions

51,765 answers

573 users

How to check if a string contains only valid parentheses (open close same type (), {}, []) in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func stringContainsValidParentheses(s string) bool {
    var stack []rune

    for _, ch := range s {
        // Push the expected closing parenthesis onto the stack
        if ch == '(' {
            stack = append(stack, ')')
        } else if ch == '{' {
            stack = append(stack, '}')
        } else if ch == '[' {
            stack = append(stack, ']')
        } else {
            // Check if stack is empty or top element does not match the current character
            if len(stack) == 0 || stack[len(stack)-1] != ch {
                return false
            }
            // Pop from the stack
            stack = stack[:len(stack)-1]
        }
    }

    // Return true if the stack is empty, indicating valid parentheses
    return len(stack) == 0
}

func main() {
    fmt.Println(stringContainsValidParentheses("(){}[]"))        
    fmt.Println(stringContainsValidParentheses("([{}])"))        
    fmt.Println(stringContainsValidParentheses("(){}[]()(){}"))  
    fmt.Println(stringContainsValidParentheses("(]"))            
    fmt.Println(stringContainsValidParentheses("({[)]}"))        
}



/*
run:

true
true
true
false
false

*/

 



answered Apr 25, 2025 by avibootz
...