কম্পিউটার টিউটোরিয়াল

C#-তে দেয়া স্ট্রিং থেকে ক্যারেক্টার রিপিট না করে লংগেস্ট সাবস্ট্রিং-এর দৈর্ঘ্য কীভাবে বের করবেন?


দেওয়া স্ট্রিং ইনপুট থেকে, স্লাইডিং উইন্ডো টেকনিক ব্যবহার করে دو পয়েন্টার i এবং j রাখুন। i এবং j উভয় স্ট্রিং-এ একই ক্যারেক্টারকে পয়েন্ট করবে। স্ট্রিং ট্রাভার্স করে লিস্টে যোগ করুন। যদি রিপিটেড ক্যারেক্টার পাওয়া যায় তবে লিস্ট থেকে সরিয়ে দিন অন্যথায় অ্যাপেন্ড করুন।

উদাহরণ ১

ইনপুট − s = "abcabcbb"

আউটপুট − 3

ব্যাখ্যা − উত্তর হলো "abc", দৈর্ঘ্য ৩।

উদাহরণ ২

ইনপুট − s = "bbbbb"

আউটপুট − 1

ব্যাখ্যা − উত্তর হলো "b", দৈর্ঘ্য ১।

টাইম কমপ্লেক্সিটি − 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
  1. জাভাস্ক্রিপ্টে স্ট্রিংয়ে সর্বোচ্চ দীর্ঘ স্বরবর্ণ (vowel) সাবস্ট্রিং দৈর্ঘ্য

  2. C ভাষা ব্যবহার করে দिये गये স্ট্রিং থেকে স্বরবর্ণ ডিলিট করার পদ্ধতি

  3. C++-এ দেওয়া শুরুর ক্যারেক্টার থেকে সর্বোচ্চ পথের দৈর্ঘ্য নির্ণয়

  4. পাইথনে দিয়ে k সংখ্যক یونিক ক্যারেক্টার সম্বলিত দীর্ঘতম সাবস্ট্রিং খুঁজে বের করা