logo

Verificați dacă șirul conține subșir în Python

Acest articol va trata cum să verificați dacă a Piton șir conține un alt șir sau un subșir în Python. Având două șiruri de caractere, verificați dacă un subșir este în șirul dat.

  Input:   Substring = 'geeks'   String='geeks for geeks'   Output:   yes   Input:   Substring = 'geek'  String='geeks for geeks'   Output:   yes   Explanation:   In this, we are checking if the substring is present in a given string or not.>

Subșir Python în șir

Verificarea unui subșir este una dintre cele mai utilizate sarcini în Python. Python folosește multe metode pentru a verifica un șir care conține un subșir cum ar fi, find(), index(), count(), etc. Cea mai eficientă și rapidă metodă este utilizarea unui în operator care este folosit ca operator de comparare. Aici vom acoperi diferite abordări:



  • Folosind If-Else
  • Utilizarea In Operator
  • Verificare folosind metoda split().
  • Folosind metoda find().
  • Folosind metoda count().
  • Folosind metoda index().
  • Utilizarea listei de înțelegere
  • Utilizarea funcției lambda
  • Folosind __contains__ clasa magică.
  • Utilizarea funcției de tăiere
  • Folosind expresii obisnuite
  • folosind metoda operator contains().

Verifica Subșir Python în șir folosind If-Else

În Python, puteți verifica că subșirul python din șirul este prezent folosind un dacă-altfel afirmație. Declarația if-else vă permite să executați condiționat diferite blocuri de cod în funcție de faptul dacă condiția este adevărată sau falsă.

Python3








# Take input from users> MyString1>=> 'A geek in need is a geek indeed'> > if> 'need'> in> MyString1:> >print>(>'Yes! it is present in the string'>)> else>:> >print>(>'No! it is not present'>)>

>

sistem de operare
>

Ieșire

Yes! it is present in the string>

Complexitatea timpului: Pe)
Spatiu auxiliar: O(1)

Verificarea subșirului Python în String folosind În Operator

În Python, puteți verifica cu ușurință dacă un subșir este prezent într-un șir dat folosindin>operator. Thein>operatorul este folosit pentru a testa dacă o anumită valoare (subșir) există într-o secvență.

Python3




text>=> 'Geeks welcome to the Geek Kingdom!'> > if> 'Geek'> in> text:> >print>(>'Substring found!'>)> else>:> >print>(>'Substring not found!'>)> > if> 'For'> in> text:> >print>(>'Substring found!'>)> else>:> >print>(>'Substring not found!'>)>

>

>

Ieșire

Substring found! Substring not found!>

Complexitatea timpului: Pe)
Spatiu auxiliar: O(1)

Verificarea subșirului Python în String folosind metoda Split().

Verificarea subșirului Python în șir este prezent sau nu este utilizat Despică(). Mai întâi împărțiți șirul dat în cuvinte și stocați-le într-o variabilă s apoi folosind condiția if, verificați dacă un subșir este prezent sau nu în șirul dat.

Python3




# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->preluând intrare de la utilizator>>> => 'geeks'> # or substring=input()> > # splitting words in a given string> s>=> string.split()> > # checking condition> # if substring is present in the given string then it gives output as yes> if> substring>in> s:> >print>(>'yes'>)> else>:> >print>(>'no'>)>

>

>

Ieșire

Yes>

Complexitatea timpului: O(n + m)
Spatiu auxiliar: Pe)

Verificați Python Substring în String folosind metoda Find().

Putem verifica iterativ pentru fiecare cuvânt, dar Python ne oferă o funcție încorporată găsi() care verifică dacă un subșir este prezent în șir, ceea ce se face într-o singură linie. Funcția find() returnează -1 dacă nu este găsită, altfel returnează prima apariție, deci folosind această funcție această problemă poate fi rezolvată.

Python3




def> check(string, sub_str):> >if> (string.find(sub_str)>=>=> ->1>):> >print>(>'NO'>)> >else>:> >print>(>'YES'>)> > > # driver code> string>=> 'geeks for geeks'> sub_str>=> 'geek'> check(string, sub_str)>

>

>

Ieșire

Yes>

Complexitatea timpului: PE)
Spatiu auxiliar: O(1)

Verificați subșirul Python în șir folosind metoda Count().

De asemenea, puteți număra numărul de apariții ale unui anumit subșir într-un șir, apoi puteți utiliza Python numara() metodă. Dacă subșirul nu este găsit, se va tipări da, altfel nu va fi tipărit.

Python3




def> check(s2, s1):> >if> (s2.count(s1)>>>>):> >print>(>'YES'>)> >else>:> >print>(>'NO'>)> > > s2>=> 'A geek in need is a geek indeed'> s1>=> 'geeks'> check(s2, s1)>

>

>

Ieșire

No>

Complexitatea timpului: PE)
Spatiu auxiliar: O(1)

Verificați Python Substring în șir folosind metoda Index().

The Metoda Index(). returnează indexul de pornire al subșirului trecut ca parametru. Aici subșir este prezent la indicele 16.

Python3




any_string>=> 'Geeks for Geeks substring '> start>=> 0> end>=> 1000> print>(any_string.index(>'substring'>, start, end))>

>

>

char și int java

Ieșire

16>

Complexitatea timpului: PE)
Spatiu auxiliar: O(1)

Verificați Python Substring în String u cânta Liste Comprehension

Pentru a verifica subșirul Python în șir folosind înțelegerea listei . Folosirea listei de înțelegere oferă o modalitate concisă de a verifica un subșir într-un șir și de a determina dacă acesta există în oricare dintre cuvinte.

Python3




metoda principală java

s>=>'geeks for geeks'> s2>=>'geeks'> print>([>'yes'> if> s2>in> s>else> 'no'>])>

>

>

Ieșire

['Yes']>

Complexitatea timpului: PE)
Spatiu auxiliar: O(1)

Verificați subșirul Python în șir folosind funcția Lambda

Pentru a verifica subșirul Python în șir folosind functie lambda . Utilizarea unei funcții lambda oferă o modalitate concisă de a verifica un subșir într-un șir și de a determina dacă acesta există în oricare dintre cuvinte.

Python3




s>=>'geeks for geeks'> s2>=>'geeks'> x>=>list>(>filter>(>lambda> x: (s2>in> s),s.split()))> print>([>'yes'> if> x>else> 'no'>])>

>

>

Ieșire

['Yes']>

Complexitatea timpului: O(n + m)
Spatiu auxiliar: O(m)

Verificați Python Substring în String folosind clasa magică __contains__.

Pentru a verifica subșirul python în șir, folosim __contains__(). Această metodă este folosită pentru a verifica dacă șirul este prezent în celălalt șir sau nu.

Python3




a>=> [>'Geeks-13'>,>'for-56'>,>'Geeks-78'>,>'xyz-46'>]> for> i>in> a:> >if> i.__contains__(>'Geeks'>):> >print>(f>'Yes! {i} is containing.'>)>

>

>

Ieșire

Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.>

Complexitatea timpului: PE)
Spatiu auxiliar: O(1)

Verificați subșirul Python în șir folosind Slicing

Verificați subșirul python în șir folosind slicing. Această implementare folosește o buclă pentru a itera prin fiecare index de pornire posibil al subșirului din șir și apoi utilizează felierea pentru a compara subșirul curent cu argumentul subșirului. Dacă subșirul curent se potrivește cu argumentul subșirului, atunci funcția returnează True, altfel returnează False.

Python3




def> is_substring(string, substring):> >for> i>in> range>(>len>(string)>-> len>(substring)>+> 1>):> >if> string[i:i>+>len>(substring)]>=>=> substring:> >return> True> >return> False> string>=> 'A geeks in need is a geek indeed'> substring>=> 'geeks'> print>(is_substring(string,substring))>

>

istoricul versiunilor Android
>

Ieșire

True>

Complexitatea timpului: O(n*m)
unde n este lungimea argumentului șir și m este lungimea argumentului subșir. Acest lucru se datorează faptului că funcția folosește o buclă pentru a itera prin fiecare index de pornire posibil al subșirului din șir și apoi folosește slicing pentru a compara subșirul curent cu argumentul subșirului. În cel mai rău caz, bucla va repeta de n-m+1 ori, iar fiecare operație de felie durează timp O(m), rezultând o complexitate de timp totală de O((n-m+1)m) = O(nm) .
Spatiu auxiliar: O(1)

Verificați subșirul Python în șir folosind expresia regulată

În Python, puteți verifica că subșirul python din șirul este prezent folosind expresii obisnuite . Expresiile regulate oferă capabilități puternice de potrivire a modelelor, permițându-vă să definiți modele de căutare complexe pentru potrivirea subșirurilor. Iată cum puteți utiliza expresii regulate pentru a verifica dacă există un subșir într-un șir.

Python3




import> re> > MyString1>=> 'A geek in need is a geek indeed'> > if> re.search(>'need'>, MyString1):> >print>(>'Yes! it is present in the string'>)> else>:> >print>(>'No! it is not present'>)>

>

>

Ieșire

Yes! it is present in the string>

Complexitatea timpului: O(n), unde n este lungimea șirului de intrare.
Complexitatea spațiului: O(1), deoarece nu folosim niciun spațiu suplimentar

Verificați subșirul Python în șir folosind metoda operator.contains().

Această abordare folosităoperator.contains()metoda de a verifica dacă subșirul este prezent în șir Dacă condiția este True, imprimați da, altfel imprimați nu

Python3




#Python program to check if a substring is present in a given string> import> operator as op> s>=>'geeks for geeks'> s2>=>'geeks'> if>(op.contains(s,s2)):> >print>(>'yes'>)> else>:> >print>(>'no'>)>

>

>

Ieșire

Yes>

Complexitatea timpului: PE)
Spatiu auxiliar: O(1)