প্রদত্ত স্ট্রিং ইনপুট থেকে, 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