প্রদত্ত স্ট্রিং ইনপুট থেকে, 2টি পয়েন্টার i এবং j দিয়ে স্লাইডিং উইন্ডো কৌশলটি ব্যবহার করুন। i এবং j উভয়ই স্ট্রিং-এ একই অক্ষর নির্দেশ করবে। স্ট্রিং এর মধ্য দিয়ে যান এবং তালিকায় যোগ করুন। যদি বারবার অক্ষর পাওয়া যায় তাহলে তালিকা থেকে সরিয়ে ফেলুন অন্যথায় তালিকায় যুক্ত করুন।
উদাহরণ 1
ইনপুট ৷ − s ="abcabcbb"
আউটপুট − 3
ব্যাখ্যা − উত্তরটি হল "abc", যার দৈর্ঘ্য 3।
উদাহরণ 2
ইনপুট ৷ − s ="bbbbb"
আউটপুট − 1
ব্যাখ্যা − উত্তরটি হল "b", যার দৈর্ঘ্য 1।
সময়ের জটিলতা − O(N)
স্পেস জটিলতা − O(N)
উদাহরণ
public class Arrays{ public int LongestSubstringWithNoRepeatingCharacters(string s){ List<char> c = new List<char>(); int iPointer = 0; int jpointer = 0; int max = 0; while (jpointer < s.Length){ if (c.Contains(s[jpointer])){ c.Remove(s[iPointer]); iPointer++; } else{ max = Math.Max(c.Count(), max); c.Add(s[jpointer]); jpointer++; } } return max; } } static void Main(string[] args){ int res = s.LongestSubstringWithNoRepeatingCharacters("abcabcbb"); Console.WriteLine(res); }
আউটপুট
2