سلام
انسان ها با کمی دقت میتوانند جواب سوال داخل عکس را بدهند ( هر چند که خودم بعد از جدا کردن توابع با رنگ بالاخره تونستم تعداد پرانتز هارو درست بذارم ) ولی کامپیوتر چطور؟
همانطور که میدانید تنها راه حل هر مسئله در کامپیوتر پیدا کردن یک الگوریتم برای آن است.
حالا باید الگوریتمی طراحی کنیم که پرانتز بسته یک پرانتز باز را پیدا کند. راه حلی که به ذهن من رسیده این است که با یک حلقه روی کاراکتر های رشته پیمایش کنیم و این پیمایش از مجنون (یا همان پرانتز بازی که به دنبال پرانتز بسته اش است) شروع و تا پیدا کردن لیلی ( یا همان پرانتز بسته ) ادامه می یابد.
حالا از کجا بفهمیم پرانتز بسته ای که روی آن هستیم همان لیلی ما است؟
برای این کار دو متغیر به اسم های "فاصله از لیلی" و "نشانی لیلی"(یا همان ایندکس لیلی در رشته که وقتی فاصله از لیلی صفر شد مقدار دهی می شود) تعریف میکنیم، حالا اگر بجای پرانتز باز ها عدد یک و بجای پرانتز بسته ها عدد منفی یک قرار دهیم و داخل حلقه اگر به این اعداد برخوردیم آن را با "فاصله از لیلی" جمع کنیم در این صورت وقتی "فاصله از لیلی" صفر شد یعنی ما به لیلی مجنونمان رسیده ایم، حلقه را تمام و نشانی لیلی را به مجنون می دهیم.
این پست رو میذارم جهت کامل کردن کدی که یک دوست برای راحتی کار من نوشته بود.
پیوند پست دوستم :
و در اخر با چند بیت شعر از دکتر سوگل مشایخی با شما خداحافظی میکنم