Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.
Problem Palindromic Subsequences Sil Leetcode Solution sizə verildiyini bildirir sim. Sətir yalnız 'a' və ya 'b' iki simvoldan ibarətdir. Bütün simli silmək tələb olunur. Bir hərəkətdə yalnız palindromik alt silməyi silə biləcəyiniz bir məhdudiyyət var. Bütün simli silmək üçün tələb olunan minimum addım sayını tapın. Həlli atlamadan əvvəl bir neçə nümunəyə nəzər salaq.
s = "ababa"
1
İzahat: Simli palindrom olduğundan. Bütün hərəkəti tək bir hərəkətlə silə bilərik. Beləliklə cavab da 1-dir.
s = "abb"
2
İzahat: İlk hərəkətdə “bb” çıxardırıq. İkinci hərəkətdə “a” işarəsini çıxarırıq. Beləliklə, bütün simli silmək üçün ən azı 2 hərəkət tələb edirik.
Mündəricat
Palindromic Subsequences Leetcode Solüsyonunun çıxarılması üçün yanaşma
Palindromic Subsequences Sil Leetcode Solution problemi müşahidələrdən biridir. Sətrin yalnız 'a' və 'b' iki simvoldan ibarət olduğunu müşahidə etməyimiz tələb olunur. Bir palindromla qarşılaşırıqsa, sadəcə 1-i qaytarırıq. Çünki bütün palindromu silmək üçün tək bir hərəkət tələb olunur. Boş bir simli alsaq, 0-a qayıtmalıyıq. Ancaq bunlardan başqa, bütövlükdə palindrom olmayan bir simli olduğumuzda yalnız bir vəziyyət var.
Lakin simli yalnız 'a' və 'b' olduğundan. Bütün simvolları silmək üçün ən çox 2 hərəkət edəcəyik. İlk hərəkətdə 'a' sının hamısını çıxarmalıyıq. İkinci hərəkətdə hamısını 'b' lərdən çıxarırıq. Beləliklə, bu p [problemin cavabı girişdən asılı olaraq yalnız 0, 1 və ya 2 ola bilər.
Palindromik Subsesences Leetcode həllini aradan qaldırmaq üçün kod
C ++ kodu
#include <bits/stdc++.h> using namespace std; int removePalindromeSub(string s) { if(s.size() == 0) return 0; // check if palindrome bool isPalin = true; for(int i=0;i<s.length()/2;i++) if(s[i] != s[s.length()-1-i]) isPalin = false; if(isPalin == true) return 1; else return 2; } int main(){ cout<<removePalindromeSub("abb"); }
2
Java kodu
import java.util.*; import java.lang.*; import java.io.*; class Main { public static int removePalindromeSub(String s) { if(s.isEmpty()) return 0; // check if palindrome boolean isPalin = true; for(int i=0;i<s.length()/2;i++) if(s.charAt(i) != s.charAt(s.length()-1-i)) isPalin = false; if(isPalin == true) return 1; else return 2; } public static void main (String[] args) throws java.lang.Exception { System.out.print(removePalindromeSub("abb")); } }
2
Mürəkkəblik təhlili
Zamanın mürəkkəbliyi
O (N), çünki palindrom olub olmadığını yoxlamaq üçün bütün simdən keçməliyik.
Kosmik Mürəkkəblik
O (1), çünki dəyişkənlərdən sabit sayda istifadə edirik.
