<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mahdi Shamlou | مهدی شاملو</title>
        <link>https://virgool.io/feed/@shamlouprogrammer</link>
        <description>مهدی شاملو یک توسعه دهنده نرم افزار ساده 😉</description>
        <language>fa</language>
        <pubDate>2026-04-15 01:23:45</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3776833/avatar/OZG8RU.jpg?height=120&amp;width=120</url>
            <title>Mahdi Shamlou | مهدی شاملو</title>
            <link>https://virgool.io/@shamlouprogrammer</link>
        </image>

                    <item>
                <title>مستِ مستْ</title>
                <link>https://virgool.io/@shamlouprogrammer/%D9%85%D8%B3%D8%AA%D9%90-%D9%85%D8%B3%D8%AA%D9%92-mzjofacb8jqp</link>
                <description>از نگاهت مست مستم من فنایم یار منخود تماشا کن به حالم من رهایم یار منمن رها از هر چه دنیا داردم در نزد تومن به عشقت می نویسم می سرایم یار منبی تو من غرقم به دنیا در به در حالی خرابرحم و لطفی کن ز دوری در عزایم یار منعاقلی بر من بگفتا از چه نالی یا که زاریهاتفی بر او بگفتش من جدایم یار منمن جدا از یار من از دلبرم دلدار مناو حنانم من فدایش می ستایم یار منمن کجایم یا چرایم من ندانم او خدایممن بخواهم روی یارم در دعایم یار منخواب دیدم من شبی در منزلی زیبا شدمماه رویی دیدمت گفتم فدایم یار منجا پریدم من بدیدم یار من نیستآرزویم خواب دیگر ان دوایم یار منگفتا که شاعر کن خلاصش در غزل هی پیچ تابی بر نزننازنینم یک نظر بر من بکن یا کن صدایم یار منشاعر : مهدی شاملو | Mahdi Shamlou</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Thu, 15 Jan 2026 17:41:55 +0330</pubDate>
            </item>
                    <item>
                <title>شراب الم</title>
                <link>https://virgool.io/@shamlouprogrammer/%D8%B4%D8%B1%D8%A7%D8%A8-%D8%A7%D9%84%D9%85-dtoccirchwz2</link>
                <description>مهیای دیدن ، شنیدن نبودی ؟! کنی گفتگو !ندانی که یار تو کیست ؟ چرا ، کی ، کجا رفته او !شراب الم را چشیدی ؟ بدانی ره معشوق را ؟ ملال سفر را کشیدی ؟! به شوقش کنی جستجو  !عجب داری ای مدعی زین همه ادعا تو کی دل شناسی ؟! نه خود را شناسی ، نه هی را نه هو تمنای یار و دلی بند غیر ، دل و دیده کن شستشو شاعر : مهدی شاملو | Mahdi Shamlouببخشید یکمی وزنش خوب نشد !</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Wed, 14 Jan 2026 08:18:46 +0330</pubDate>
            </item>
                    <item>
                <title>خمارآلود</title>
                <link>https://virgool.io/@shamlouprogrammer/%D8%AE%D9%85%D8%A7%D8%B1%D8%A2%D9%84%D9%88%D8%AF-gnhhiz7eouqd</link>
                <description>ز چشمت مست و حیرانم غزل مستانه شد یارمخمارآلودِ مژگانت دلم پروانه شد یارمتو را گفتم که عاشق تر ز مجنونم که خندیدیدلا بردی به خندیدن جهان گلخانه شد یارمببوسم روی ماهت را بگفتی من که لطف داریز عشقت ای صنم دل تا ابد بت خانه شد یارمقضا شد آن که دورم از تو ای محبوب من اماز دوری هم همین پیمانه در می خانه شد یارمشاعر : مهدی شاملو | Mahdi Shamlou</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Sun, 11 Jan 2026 08:44:59 +0330</pubDate>
            </item>
                    <item>
                <title>حل سوال پنجم LeetCode</title>
                <link>https://virgool.io/@shamlouprogrammer/%D8%AD%D9%84-%D8%B3%D9%88%D8%A7%D9%84-%D9%BE%D9%86%D8%AC%D9%85-leetcode-ejbucj2sqapt</link>
                <description>سلام دوستان عزیز، من مهدی شاملو هستم و برگشتم با یکی از سوالات کلاسیک و خیلی مهم LeetCode: سوال شماره ۵ – Longest Palindromic Substring 😎این سوال Medium هست، اما یکی از اون سوالاتیه که تقریباً تو همه مصاحبه‌های شرکت‌های بزرگ میاد و حل بهینه‌اش نشون‌دهنده درک خوب از الگوریتمه.مثل همیشه می‌گم: راه‌های مختلفی برای حل وجود داره، اما من قبلاً یک روش ساده داشتم که بعضی تست‌کیس‌ها رو پاس نمی‌کرد. حالا یک روش خیلی بهتر و بهینه‌تر رو براتون نوشتم که ۱۰۰٪ همه تست‌کیس‌های LeetCode رو پاس می‌کنه. البته خیلی ازم وقت گرفت 😅صورت سوال: Longest Palindromic Substringدر  یک رشته (طول ۱ تا ۱۰۰۰، فقط حروف انگلیسی و اعداد)، باید طولانی‌ترین زیررشته پیوسته (substring) رو پیدا کنیم که پالیندروم باشه. پالیندروم یعنی از جلو و عقب یکسان خونده بشه (مثل &quot;aba&quot; یا &quot;bb&quot;).مثال‌ها:Input: s = &quot;babad&quot; Output: &quot;bab&quot; (یا &quot;aba&quot; هم درسته – هر دو طول ۳ دارن)Input: s = &quot;cbbd&quot; Output: &quot;bb&quot;از وسط بپر !اسم این روش رو به از روی حرکت از وسط به طرفین انتخاب کردم . این روش یکی از بهترین برای این سوال هست. ایده‌ام اینه که برای هر موقعیت ممکن در رشته، فرض کنیم اونجا &quot;مرکز&quot; پالیندروم هست و به چپ و راست گسترش بدیم تا جایی که کاراکترها برابر باشن.پالیندروم دو نوع مرکز داره:فرد: یک کاراکتر وسط (مثل &quot;aba&quot;)زوج: بین دو کاراکتر یکسان (مثل &quot;bb&quot;)پیچیدگی زمانی: O(n²) پیچیدگی فضایی: O(1) → عالی!class Solution:
    def longestPalindrome(self, s: str) -&gt; str:
        if not s:
            return &quot;&quot;
        
        start = 0
        end = 0
        
        def expand_around_center_v2(left: int, right: int):
            while left &gt;= 0 and right &lt; len(s) and s[left] == s[right]:
                left -= 1
                right += 1
            return left + 1, right - 1
        
        for i in range(len(s)):
            
            # Case 1: Odd length palindrome (center is a single character)
            # Example: &quot;aba&quot; → center at &#039;b&#039;
            l1, r1 = expand_around_center_v2(i, i)
            
            # Case 2: Even length palindrome (center is between two characters)
            # Example: &quot;bb&quot; → center between the two &#039;b&#039;s
            l2, r2 = expand_around_center_v2(i, i + 1)
            
            if r1 - l1 &gt; end - start:
                start, end = l1, r1
            if r2 - l2 &gt; end - start:
                start, end = l2, r2
                
            print(f&quot;start : {start} and end : {end}&quot;)
            print(&quot;#&quot; * 100)
        
        return s[start:end + 1]چرا این روش خوبه؟نیازی به ساخت همه زیررشته‌ها ندارهفضای اضافی مصرف نمی‌کنهتو مصاحبه‌ها اگر ازش استفاده کنی خیلی هوشمندانه‌ستاگر روش دیگه‌ای بلدید حتماً تو کامنت‌ها بگید تا یاد بگیرم و شاید پست جداگونه‌ای براش بسازیم 🚀سوالی بود بپرسید، خوشحال می‌شم کمک کنم نویسنده: مهدی شاملو | Mahdi Shamlou</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Wed, 07 Jan 2026 10:27:09 +0330</pubDate>
            </item>
                    <item>
                <title>حل سوال چهارم LeetCode</title>
                <link>https://virgool.io/@shamlouprogrammer/%D8%AD%D9%84-%D8%B3%D9%88%D8%A7%D9%84-%DA%86%D9%87%D8%A7%D8%B1%D9%85-leetcode-fiyrragrpcvq</link>
                <description>سلام دوستان عزیز، من مهدی شاملو هستم و خوشحالم که برگشتم با یک سوال Hard از LeetCode! 😎این بار می‌خوام روش حل سوال چهارم LeetCode رو که یکی از سوالات معروف و چالش‌برانگیز بخش Hard هست، به اشتراک بذارم ( یکی از سوالاتی هست که در مصاحبه های فنی استخدامی خیلی پرسیده میشه )مثل همیشه یادآوری می‌کنم که راه‌های مختلفی برای حل هر سوال وجود داره و راه‌حل بهینه‌تر (مثل O(log(m+n))) هم هست، اما این راه‌حلی هست که من پیاده کردم و ساده و قابل فهمه. امیدوارم براتون مفید باشه!صورت سوال: Median of Two Sorted Arraysدو آرایه مرتب شده nums1 و nums2 با اندازه‌های m و n به ما داده شده. باید میانه (median) آرایه ترکیبی این دو رو پیدا کنیم.نکته مهم: پیچیدگی زمانی کلی باید O(log(m+n)) باشه (ولی راه‌حل من فعلاً ساده‌تره و O((m+n)log(m+n)) هست).مثال‌ها:Input: nums1 = [1,3], nums2 = [2] Output: 2.00000 
توضیح: آرایه ترکیبی [1,2,3] → میانه ۲Input: nums1 = [1,2], nums2 = [3,4] Output: 2.50000
 توضیح: آرایه ترکیبی [1,2,3,4] → میانه (۲ + ۳)/۲ = ۲.۵محدودیت‌ها:اندازه هر آرایه تا ۱۰۰۰مجموع اندازه‌ها تا ۲۰۰۰اعداد بین -۱۰⁶ تا ۱۰⁶راه‌حل من (رویکرد ساده با ادغام و مرتب‌سازی)من از یک روش خیلی مستقیم استفاده کردم: دو آرایه رو با هم ادغام کردم، مرتب کردم و بعد میانه رو محاسبه کردم.class Solution:
    def findMedianSortedArrays(self, nums1, nums2) -&gt; float:
        &quot;&quot;&quot;
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: float
        &quot;&quot;&quot;
        list3 = nums1 + nums2 # merge lists
        list3 = sorted(list3) # sort lists
        print(list3)
        mid = len(list3)/2
        print(f&#039;mid is {mid}&#039;)
        print(f&#039;mid is /2 {mid/2}&#039;)
        print(f&#039;mid is /2 %2 {(mid / 2)%2}&#039;)

        if (len(list3))%2 == 0: # if number is not odd
            return (list3[int(mid)]+list3[int(mid-1)])/2
        else:
            return list3[int(mid)]توضیح گام به گام:۱. دو آرایه رو با + ادغام می‌کنیم → یک لیست جدید می‌سازیم.۲. لیست جدید رو با sorted() مرتب می‌کنیم (چون آرایه‌های ورودی از قبل مرتب هستن، اما بعد از ادغام ممکنه نباشه).۳. طول لیست ترکیبی رو نصف می‌کنیم تا اندیس وسط رو پیدا کنیم.۴. اگر تعداد عناصر زوج باشه: میانگین دو عدد وسط رو برمی‌گردونیم.۵. اگر فرد باشه: فقط عدد وسط رو برمی‌گردونیم.این روش خیلی ساده و قابل فهمه و روی همه تست‌کیس‌های LeetCode پاس می‌شه، ولی پیچیدگی زمانی‌اش O((m+n)log(m+n)) هست به خاطر مرتب‌سازی.نکته پایانیمی‌دونم که راه‌حل بهینه‌تر با الگوریتم Binary Search وجود داره که دقیقاً به پیچیدگی O(log(m+n)) می‌رسه و بدون ادغام کامل کار می‌کنه (خیلی هوشمندانه‌ست!). اگر کسی اون روش رو انجام داده یا راه‌حل بهتری داره، خیلی خوشحال می‌شم داخل کامنت‌ها یا گیت‌هابم بهم بگه تا یاد بگیرم و کدم رو آپدیت کنم 🚀اگر سوالی داشتید یا نیاز به توضیح بیشتر بود، حتماً بپرسید که اگر بلد بودم کمک کنم نویسنده: مهدی شاملو | Mahdi Shamlou</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Wed, 07 Jan 2026 09:46:48 +0330</pubDate>
            </item>
                    <item>
                <title>حل سوال سوم LeetCode</title>
                <link>https://virgool.io/@shamlouprogrammer/%D8%AD%D9%84-%D8%B3%D9%88%D8%A7%D9%84-%D8%B3%D9%88%D9%85-leetcode-pbatizkhwbum</link>
                <description>سلام دوستان عزیز، من مهدی شاملو هستم و در این پست می‌خوام روش حل سوال سوم LeetCode رو که یکی از سوالات کلاسیک و جالب در سطح Medium هست، به اشتراک بذارم.البته مثل همیشه باید بگم که هر سوالی رو می‌تونید به روش‌های مختلفی حل کنید و فقط یک راه درست وجود نداره، اما این راه‌حلی هست که خودم پیاده‌سازی کردم و امیدوارم براتون مفید باشه!صورت سوال: Longest Substring Without Repeating Charactersباید طول بلندترین زیررشته (substring) رو پیدا کنیم که هیچ کاراکتر تکراری نداشته باشه.مثال‌:Input: s = &quot;abcabcbb&quot; Output: 3Input: s = &quot;bbbbb&quot; Output: 1Input: s = &quot;pwwkew&quot; Output: 3محدودیت‌ها: طول رشته تا ۵*۱۰^۴ و شامل حروف انگلیسی، اعداد، سمبل‌ها و فضای خالی.راه‌حل من (رویکرد ساده با دو حلقه تو در تو)من از یک رویکرد ساده استفاده کردم که همه زیررشته‌های ممکن رو بررسی می‌کنه و طول بلندترین اون‌هایی که تکرار ندارن رو نگه می‌داره.برای این کار، یک لیست موقت برای نگه‌داری کاراکترهای فعلی استفاده کردم و هر بار که تکرار دیدم، لیست رو ریست کردم.class Solution(object):

    def lengthOfLongestSubstring(self, s):
        max_len = 0
        lists = []
        for i in range(0, len(s)):
            for z in range(i, len(s)):
                if s[z] in lists:
                    lists = []
                    break
                else:
                    lists.append(s[z])

                if max_len &lt; len(lists):
                    max_len = len(lists)

        return max_len
توضیح گام به گام:۱. یک متغیر max_len برای نگه‌داری حداکثر طول اولیه صفر می‌ذاریم.۲. با یک حلقه خارجی از هر اندیس i به عنوان شروع زیررشته شروع می‌کنیم.۳. با حلقه داخلی از i تا آخر رشته، کاراکترها رو یکی یکی اضافه می‌کنیم.۴. اگر کاراکتر تکراری دیدیم، لیست موقت رو خالی می‌کنیم و حلقه داخلی رو می‌شکنیم (یعنی زیررشته جدید از جای بعدی شروع می‌شه).۵. بعد از هر زیررشته، طولش رو با max_len مقایسه می‌کنیم و اگر بزرگتر بود، آپدیت می‌کنیم.این روش ساده و قابل فهمه، اما پیچیدگی زمانی‌اش O(n²) هست که برای رشته‌های خیلی بلند ممکنه کند باشه (هرچند با محدودیت LeetCode پاس می‌شه).نکته پایانیاگر راه‌حل بهتری دارید (مثلاً با تکنیک Sliding Window که O(n) هست و خیلی بهینه‌تره)، خوشحال می‌شم داخل کامنت‌ها یا گیت‌هابم بهم بگید تا کدم رو بهبود بدم!اگر سوالی داشتید یا نیاز به توضیح بیشتر بود، بپرسید که اگر بلد بودم کمک کنمنویسنده: مهدی شاملو | Mahdi Shamlou</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Wed, 07 Jan 2026 09:23:05 +0330</pubDate>
            </item>
                    <item>
                <title>حل سوال دوم LeetCode</title>
                <link>https://virgool.io/@shamlouprogrammer/%D8%AD%D9%84-%D8%B3%D9%88%D8%A7%D9%84-%D8%AF%D9%88%D9%85-leetcode-gv349pmwohgp</link>
                <description>با سلام و عرض ادب خدمت همه شما دوستانمن مهدی شاملو هستم و باید بگم بسیار خوشحالم که شما در حال مطالعه این متن هستید و بدونید خیلی خوشحال میشم اگر نکته برای بهبود این سری ها داشتید با من در میان بگزارید خب در این قسمت به سراغ حل سوال دوم از لیست سوالات سایت LeetCode میریم و اما سوال : اون طوری که من متوجه شدم و تونستم سوال رو حل کنم فهمیدم که دو لیست پیوندی به ما داده میشه که این دو لیست اعداد چند رقمی بر عکس هستن و باید این اعداد باهم جمع شده و در قالب یک لیست پیوندی برعکس خروجی داده بشود .Mahdi Shamlouclass ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        res = self.sum(l1,l2,0)
        return res

    def sum(self, l1, l2, added):
        posetive = l1.val + l2.val + added
        added = 0
        if posetive &gt;= 10:
            posetive = posetive - 10
            added = 1
        if l1.next != None and l2.next != None:
            list_node = ListNode(val=posetive, next=self.sum(l1.next, l2.next, added))
        elif l2.next == None and l1.next != None:
            list_node = ListNode(val=posetive, next=self.sum(l1.next, ListNode(val=0, next=None), added))
        elif l2.next != None and l1.next == None:
            list_node = ListNode(val=posetive, next=self.sum(ListNode(val=0, next=None), l2.next, added))
        else:
            list_node = ListNode(val=posetive, next=None)
        return list_nodeخب همون طوری که دارید میبیند در قطعه کد بالا یک کلاس وجود داره به نام ListNode که تعریف همون لیست پیوندی هست که به شما گفتم !اما قبل از ورود به مرحله بعد باید بگم من این سوال با توابع بازگشتی حل کردم اگر چیزی درباره توابع بازگشتی نمیدونید بهتره قبلش یکم مطالعه کنید راستی میتونید از چت جی پی تی هم بپرسید (: خب بریم سراغ حل : همون طور که میبیند تابع پایینی تابعی هست که خروجی ما رو به سایت LeetCode برمیگردونه ( بهتره بگم سایت LeetCode این تابع رو فراخوانی میکنه ) def addTwoNumbers(self, l1, l2):
        res = self.sum(l1,l2,0)
        return resمن برای اینکه بتونم از توابع بازگشتی استفاده کنم تابع زیر رو تعریف کردم :    def sum(self, l1, l2, added):
        posetive = l1.val + l2.val + added
        added = 0
        if posetive &gt;= 10:
            posetive = posetive - 10
            added = 1
        if l1.next != None and l2.next != None:
            list_node = ListNode(val=posetive, next=self.sum(l1.next, l2.next, added))
        elif l2.next == None and l1.next != None:
            list_node = ListNode(val=posetive, next=self.sum(l1.next, ListNode(val=0, next=None), added))
        elif l2.next != None and l1.next == None:
            list_node = ListNode(val=posetive, next=self.sum(ListNode(val=0, next=None), l2.next, added))
        else:
            list_node = ListNode(val=posetive, next=None)
        return list_nodeخب بریم سراغ توضیحات تابع اصلی :همون طور که مشاهده میکنید این تابع دولیستی که از leetcode میگیریم رو به عنوان ورودی میگیریم همچنین یک متغیر به نام added که این رو در هر استپ به اعداد قبلی اضافه خواهیم کرد .     def sum(self, l1, l2, added):
        posetive = l1.val + l2.val + added
        added = 0در هر مرحله یک متغیر به نام posetive رو حساب میکنیم که از جمع هر کدام از نود های لیست ماست .در مرحله بعد که یک شرط وجود دارد که اگر posetive بیشتر از ۱۰ باشه added رو مساوی یک میزاره و posetive رو ۱۰ تا ازش کم میکنه ( این همون روش جمعی هست که همه از دوران ابتدایی بلدیم(: ! )        posetive = l1.val + l2.val + added
        added = 0
        if posetive &gt;= 10:
            posetive = posetive - 10
            added = 1و در شروط بعدی که مشاهده میکنید برای وجود نداشتن نود های بعدی هر کدوم از لیست ها تصمیم گیری شده که دوباره خود همین تابع صدا زده میشود . برای مثال یکی از شرط های زیر رو توضیح میدم  elif l2.next == None and l1.next != None:
            list_node = ListNode(val=posetive, next=self.sum(l1.next, ListNode(val=0, next=None), added))در این شرطی که دارید می بینید سیستم ما اگر نود بعدی لیست دوم رو پیدا نکنه ( یعنی همون وجود نداشته باشه ) و لیست اول نود بعدی داشته باشه میایم و یک نود جدید میسازیم که مقدارش posetive هست و نود بعدیش خروجی همین تابع با ورودی هایی که میبیند هست ( ورودی اول (نود بعدی لیست اول هست) و (ورودی دوم به علت اینکه نود بعدی در لیست دوم وجود ندارد یک نود خالی هست که مقدارش صفر و نود بعدی اش نان هست )) به همین سادگی و باحالی ! اگر سوالی داشتید در خدمتتون هستم و اگر نکته ای برای بهبود این کد دارید خوشحالم میشم توی گیت هاب مطرحش کنید ! ایدی گیت هاب من هم mahdi0shamlou هست !نویسنده : مهدی شاملو  |  Mahdi Shamlou</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Sat, 18 Jan 2025 20:49:17 +0330</pubDate>
            </item>
                    <item>
                <title>حل سوال اول LeetCode</title>
                <link>https://virgool.io/codenevis/%D8%AD%D9%84-%D8%B3%D9%88%D8%A7%D9%84-%D8%A7%D9%88%D9%84-leetcode-vlanikceifh4</link>
                <description>سلام من مهدی شاملو هستم و در این پست میخوام روش حل سوال اول leetcode رو به اشتراک بزارم البته که باید بدونید شما هر سوال رو به هر روشی که به بشه اون سوال رو حل کرد میتونید حل کنید و فقط یک راه برای حل وجود نداره اما این راه حل من هست امیدوارم ازش استفاده کنید و به دردتون بخوره class Solution(object):
    def twoSum(self, nums, target):
        dict_key = {}
        for i in range(0, len(nums)):
            target_mines = target - nums[i]

            try:
                print(dict_key[str(target_mines)])
                print(i)
                return [dict_key[str(target_mines)], i]
            except:
                dict_key[str(nums[i])] = iسوالی که مطرح شده این هست که در یک لیست که از اعداد پر شده چطور با داشتن یک عدد تحت عنوان تارگت بتوان دو عدد از لیست پیدا کرده که مجموع اون ها به تارگت برسهحالا شما با چند روش میتونید این سوال رو حل کنید اما روشی که من پیاده سازی کردم این سوال رو با استفاده از یک دیکشنری حل میکنه که اردر زمانی اش بیشتر از n نباشه یعنی شما با یک بار چرخش در لیست به جواب سوال برسید در مرحله اول یک حلقه برای چرخش در لیست نوشتم      for i in range(0, len(nums)):در مرحله بعدی هر استپ عدد انتخاب شده از لیست رو از تارگت کم میکنم target_mines = target - nums[i]در مرحله بعد با یک بلاک مدیریت خطا اگر بتونم اون عدد کم شده رو در دیکشنری پیدا کنم که به جواب مسيله رسیدم   try:
                print(dict_key[str(target_mines)])
                print(i)
                return [dict_key[str(target_mines)], i]اما اگر با خطا مواجه شد ( اونجایی با خطا مواجه میشه که اون عدد کم شده رو نتونه توی دیکشنری پیدا کنه )یک کلید با با مقدار ایندکس عدد انتخاب شده در این مرحله توی دیکشنری میسازم و این مراحل رو تا آخر لیست تکرار میکنم except:
                dict_key[str(nums[i])] = iاگر سوالی دارید خوشحال میشم بپرسید که اگر بلد بودم بتونم کمکی کنم یا اگر به نظرتون راه حل بهتری برای حل این مسيله وجود داره خوشحال میشم داخل گیت هابم بهش اشاره کنید و کدم رو بهبود ببخشیدنویسنده : مهدی شاملو</description>
                <category>Mahdi Shamlou | مهدی شاملو</category>
                <author>Mahdi Shamlou | مهدی شاملو</author>
                <pubDate>Fri, 17 Jan 2025 00:48:12 +0330</pubDate>
            </item>
            </channel>
</rss>