یک راه حل برای این مشکل Leetcode پیشنهاد کنید و سپس آن را در پایتون اجرا کنید.
[{"input": "در صورت داشتن یک رشته که فقط شامل سه نوع کاراکتر است: '('، ') ' و '*'، یک تابع برای بررسی اینکه آیا این رشته معتبر است بنویسید. ما اعتبار رشته را با این قوانین تعریف می کنیم: هر دایره بند چپ '(' باید دایره بند راست مربوطه داشته باشد ') '. هر دایره بند راست ') ' باید دایره بند چپ مربوطه داشته باشد '('. دایره بند چپ '(' باید قبل از دایره بند راست مربوطه باشد ') '. '*' می تواند به عنوان یک دایره بند راست ') ' یا یک دایره بند چپ '(' یا یک رشته خالی مورد استفاده قرار گیرد. یک رشته خالی نیز معتبر است.", "output": "یک روش این است که از یک پشته برای پیگیری دایره بند های افتتاحی و ستاره ها استفاده کنید. هر زمان که دایره بند بسته ای مشاهده می شود، پشته به ترتیب زیر بررسی می شود: آن را با یک دایره بند افتتاحی در بالای پشته مطابقت دهید، اگر با یک ستاره در بالای پشته مطابقت نداشته باشد، اگر False را باز نمی گرداند. در پایان، اگر پشته هنوز دایره بند های افتتاحی داشته باشد، پس آن نیز باطل است. در پایتون پیاده سازی این است: `` check defValidStrings: str) -> bool: stack = [] asterisk = [] برای i، char char char in enumerate ((s): if == 'parent char: stack.appendi) f f f ` ` '*: asterisk.append.poppoppop #i: #flippop #flippop"}]