इस लीटकोड समस्या के लिए कोई समाधान सुझाएंकेवल तीन प्रकार के वर्णों वाली एक स्ट्रिंग दी गई है: '(', ')' और '*', यह जांचने के लिए एक फ़ंक्शन लिखें कि यह स्ट्रिंग मान्य है या नहीं। हम इन नियमों द्वारा एक स्ट्रिंग की वैधता को परिभाषित करते हैं:

कोई भी बायाँ कोष्ठक '(' एक संगत दायाँ कोष्ठक होना चाहिए ')'।
किसी भी दाएँ कोष्ठक ')' के संगत बाएँ कोष्ठक '(' होना चाहिए।
बायाँ कोष्ठक '(' संबंधित दाएँ कोष्ठक से पहले जाना चाहिए')'।
'*' को एकल दाएँ कोष्ठक ')' या एकल बाएँ कोष्ठक '(' या एक खाली स्ट्रिंग के रूप में माना जा सकता है।

एक खाली स्ट्रिंग भी मान्य है।
एक संभव समाधान निम्नलिखित हो सकता है:

1. एक स्टैक बनाएँ।
2. स्ट्रिंग के प्रत्येक वर्ण के लिए अनुवर्ती को विवेचित करें।
3. अगर स्ट्रिंग का कोई वर्ण खाली हो तो हम उसे मान्य मानते हैं।
4. अगर वर्ण बायाँ कोष्ठक ' (' है, तो स्टैक में जोड़ें।
5. अगर वर्ण खाली स्ट्रिंग है या दाएँ कोष्ठक ')' है, तो स्टैक से एक तत्काल दाएँ कोष्ठक '(' की तलाश करें। यदि वहां कोई हो, तो स्टैक से उसे हटाएं और अगले वर्ण की तलाश जारी रखें। यदि कोई नहीं मिलता है, तो मान्यता नहीं मिलती है और फ़ंक्शन फैल हो जाती है।
6. अगर वर्ण दाएँ कोष्ठक ')' है, तो स्टैक में जोड़ें।
7. अगर वर्ण एकल * है, तो स्टैक में जोड़ें।
8. किसी दूसरे वर्ण के लिए, स्टैक से उसके संबंधित बायाँ के वर्ण की तलाश करें। यदि वह स्टैक में होता है, तो स्टैक से हटाएं और अगले वर्ण के साथ जारी रखें। यदि वहाँ कुछ नहीं होता है, तो स्टैक में एकल '*' को मान्य माना जाना चाहिए।
9. स्टैक को खाली करें और स्ट्रिंग के सभी वर्णों के लिए कोई मान्यता नहीं मिलती है तो स्ट्रिंग मान्य नहीं मानी जाएगी।
10. विवेचित वर्णों की संख्या स्टैक में जोड़ी गई खोजों से अधिक है, तो स्ट्रिंग मान्य नहीं मानी जाएगी।

यहां एक सादा उदाहरण है:

अगर स्ट्रिंग है: "(*)()" तो यह फ़ंक्शन फैल हो जाएगी। कारण हम बायाँ कोष्ठक '(' के बिना दाएँ कोष्ठक ')' पा रहे हैं जो मान्य नहीं होता है।