Web Devs
644 subscribers
218 photos
22 videos
17 files
233 links
Articles, News, Jokes, Quotes, Back-End and UI/UX for web developers.
Github : https://github.com/fullStackDevsGroup
Advertising: @adsfullStackDevs
Download Telegram
حل مسائل با الگوریتم ها و ساختار های داده با استفاده از پایتون

#book #tutorial #coding #algorithm #python

https://goo.gl/PW7TnJ
#Algorithm #Sliding_window
#SlidingWindow #CSharp



🧩 الگوریتم Sliding Window:

الگوریتم Sliding Window یکی از تکنیک‌های مهم برای حل مسائل آرایه‌ها و رشته‌ها به طور بهینه است. این روش با استفاده از دو نشانگر برای بررسی بخش‌های مختلف داده، به سرعت جواب رو پیدا می‌کنه.

🔑 چطور کار می‌کنه؟
- دو نشانگر (`left` و `right`) برای نمایش پنجره (قسمتی از داده) استفاده می‌کنیم.
- نشانگر راست حرکت می‌کنه و هر بار یک کاراکتر یا مقدار جدید بررسی می‌شه.
- وقتی که شرایط خاصی مثل وجود مقدار تکراری یا رسیدن به اندازه‌ای خاص محقق بشه، نشانگر چپ حرکت می‌کنه تا پنجره رو کوچکتر کنیم.

مزیت اصلی: زمان اجرا به O(n) کاهش می‌یابد که نسبت به روش‌های سنتی با O(n²) بسیار سریع‌تر است.

💡 مثال: طول بزرگ‌ترین زیررشته بدون کاراکتر تکراری
ورودی: "abcabcbb"
خروجی: 3 (زیربرنامه "abc" بزرگ‌ترین زیررشته بدون تکرار است)



using System;
using System.Collections.Generic;

class Solution {
public int LengthOfLongestSubstring(string s) {
HashSet<char> set = new HashSet<char>();
int left = 0, maxLength = 0;

for (int right = 0; right < s.Length; right++) {
while (set.Contains(s[right])) {
set.Remove(s[left]);
left++;
}
set.Add(s[right]);
maxLength = Math.Max(maxLength, right - left + 1);
}

return maxLength;
}
}


کاربردها:
- پیدا کردن طول بزرگترین زیررشته یا زیرآرایه
- جستجوی زیرمجموعه‌ها با ویژگی‌های خاص
- مسائل مربوط به جمع یا مقایسه زیرآرایه‌ها و زیررشته‌ها



این الگوریتم خیلی مفیده برای حل مسائل بهینه در آرایه‌ها و رشته‌ها، خصوصاً وقتی نیاز به
بررسی بخش‌های مختلف داریم!



@fullStackDevs
👍5