Substring LeetCode Həllinin Bütün Hadisələrini Silin

Çətinlik səviyyəsi Mühit
Tez-tez soruşulur Amazon googleBaxılıb 24

Problem bəyanat

The Substring LeetCode Həllinin Bütün Hadisələrini Silin -"Alt sətirin bütün hadisələrini silin” alt sətirin BÜTÜN hadisələrini sildiyini bildirir hissə verilmiş giriş sətirindən s.

Qeyd: Alt sətir giriş sətirində bitişik simvollar ardıcıllığıdır.

misal

 

Substring LeetCode Həllinin Bütün Hadisələrini SilinPin

 

Substring LeetCode Həllinin Bütün Hadisələrini Silin

 

Substring LeetCode Həllinin Bütün Hadisələrini Silin

 Izahat

Bir sıra addımların necə yerinə yetirildiyinə baxaq giriş sətri daabcbaabcbc,

1. İndeks 2-də 'abc' hissə sətirinin ilk dəfə rast gəlindiyi üçün onu çıxarın. Bundan sonra nəticə sətir dabaabcbc olur.

2. 4-cü indeksdə 'abc' hissə sətirinin növbəti baş verməsini tapın, ona görə də onu çıxarın. Bundan sonra nəticə sətir dababc olur.

3. 3-cü indeksdə 'abc' hissə sətirinin növbəti baş verməsini tapın, ona görə də həmin hissəni çıxarın. Bundan sonra nəticələnən sətir dab olur.

4. İndi, yekun sətirdə hissə sətirinin heç bir rast gəlinməsi yoxdur, ona görə də nəticə sətrini çıxış kimi qaytarın.

 Fikir

Java String Utility Sinifində təqdim olunan indexOf() və substring() əməliyyatlarından istifadə edin.

 Kodu

  Java proqramı Alt sətirin bütün hadisələrini silin

 

   class Solution {

               public String removeOccurrences(String s, String part) {

                         if(part.length() == 0||part.length() > s.length()) 
                              return s; 
                         int occIndex = s.indexOf(part); 
                         while(occIndex!=-1) { 
                               s = s.substring(0, occIndex).concat(s.substring(occIndex + part.length())); 
                               occIndex = s.indexOf(part); 
                         } 
                         return s;
                }
   }

 

  C++ Proqramı Alt sətirin bütün hadisələrini silin

 class Solution {
   public:
          string removeOccurrences(string s, string part) {
               int i=0; 
               int len = s.length(); 
               string finalRes = s; 
               while(i < len) { 
                   string s= finalRes; 
                   if(s.find(part) < s.length()) 
                   { 
                         int occInd = s.find(part); 
                         finalRes.erase(occInd, part.length()); 
                   } 
                   i++; 
               } 
               return finalRes;
          }
};

  Substring LeetCode Həllinin Bütün Hadisələrini Silmək üçün Mürəkkəblik Təhlili

     Zamanın mürəkkəbliyi

L - Giriş sətirinin uzunluğunu qəbul edin

indexOf() və substring() əməliyyatları müvafiq olaraq indeksi tapır və sətri xətti vaxta bölür. Nəticədə, həllin ümumi zaman mürəkkəbliyi O(L) təşkil edir.

     Kosmik Mürəkkəblik

Substring() əməliyyatı hər dəfə baş verənləri siləndə sətirin yeni nüsxəsini yaradır. Nəticədə, məhlulun ümumi məkan mürəkkəbliyi O(L) təşkil edir.

Referans: https://www.javaguides.net/2018/08/java-string-utility-class.html

 

 

 

Translate »