logo

Preverite, ali niz vsebuje podniz v Pythonu

Ta članek opisuje, kako preveriti, ali je a Python niz vsebuje drug niz ali podniz v Pythonu. Glede na dva niza preverite, ali je podniz v danem nizu.

  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.>

Podniz Python v nizu

Preverjanje podniza je eno najpogosteje uporabljenih opravil v Pythonu. Python uporablja številne metode za preverjanje niza, ki vsebuje podniz, kot so find(), index(), count() itd. Najbolj učinkovita in hitra metoda je uporaba v operator, ki se uporablja kot primerjalni operator. Tukaj bomo obravnavali različne pristope:



  • Uporaba funkcije If-Else
  • Uporaba In Operator
  • Preverjanje z uporabo metoda split().
  • Uporaba metoda find().
  • Uporaba metoda count().
  • Uporaba metoda index().
  • Uporaba seznamskega razumevanja
  • Uporaba lambda funkcije
  • Uporaba __contains__ čarobnega razreda.
  • Uporaba funkcije rezanja
  • Uporaba regularni izrazi
  • z uporabo metode operator contains().

Preverite Podniz Python v nizu z uporabo If-Else

V Pythonu lahko preverite, ali je podniz python v nizu prisoten z uporabo če potem izjava. Stavek if-else vam omogoča pogojno izvajanje različnih blokov kode glede na to, ali je pogoj resničen ali napačen.

niz podniz java

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'>)>

>

>

Izhod

Yes! it is present in the string>

Časovna zapletenost: O(n)
Pomožni prostor: O(1)

Preverjanje podniza Python v nizu z uporabo V operaterju

V Pythonu lahko enostavno preverite, ali je podniz prisoten v danem nizu z uporaboin>operater. Thein>se uporablja za preverjanje, ali določena vrednost (podniz) obstaja v zaporedju.

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!'>)>

>

>

Izhod

Substring found! Substring not found!>

Časovna zapletenost: O(n)
Pomožni prostor: O(1)

Preverjanje podniza Python v nizu z uporabo metode Split().

Preverjanje, ali je podniz python v nizu prisoten ali se ne uporablja razdeli(). Najprej razdelite dani niz na besede in jih shranite v spremenljivko s, nato pa z uporabo pogoja if preverite, ali je podniz prisoten v danem nizu ali ne.

Python3




# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->sprejemanje vnosa od uporabnika> substring>=> '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'>)>

>

>

Izhod

Yes>

Časovna zapletenost: O(n + m)
Pomožni prostor: O(n)

Preverite podniz Python v nizu z uporabo metode Find().

Iterativno lahko preverjamo vsako besedo, vendar nam Python nudi vgrajeno funkcijo najti() ki preveri, ali je v nizu prisoten podniz, kar se naredi v eni vrstici. funkcija find() vrne -1, če ni najdena, sicer vrne prvo pojavitev, tako da je s to funkcijo mogoče rešiti ta problem.

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)>

>

>

Izhod

Yes>

Časovna zapletenost: O(N)
Pomožni prostor: O(1)

Preverite podniz Python v nizu z uporabo metode Count().

Prav tako lahko preštejete število pojavitev določenega podniza v nizu, nato pa lahko uporabite Python štetje () metoda. Če podniza ni mogoče najti, bo natisnjeno da, sicer pa ne.

Python3




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

>

>

Izhod

No>

Časovna zapletenost: O(N)
Pomožni prostor: O(1)

Preverite podniz Python v nizu z metodo Index().

The Metoda Index(). vrne začetni indeks podniza, posredovanega kot parameter. Tukaj podniz je prisoten na indeksu 16.

Python3




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

>

>

Izhod

16>

Časovna zapletenost: O(N)
Pomožni prostor: O(1)

Preverite podniz Python v nizu u sing List Comprehension

Za preverjanje podniza Python v nizu z uporabo razumevanje seznama . Uporaba seznamskega razumevanja zagotavlja jedrnat način za preverjanje podniza v nizu in ugotavljanje, ali obstaja v kateri od besed.

if izjava java

Python3




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

>

>

Izhod

['Yes']>

Časovna zapletenost: O(N)
Pomožni prostor: O(1)

Preverite podniz Python v nizu z uporabo funkcije Lambda

Za preverjanje podniza Python v nizu z uporabo lambda funkcija . Uporaba funkcije lambda zagotavlja jedrnat način za preverjanje podniza v nizu in ugotavljanje, ali obstaja v kateri koli besedi.

Python3




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

>

>

Izhod

['Yes']>

Časovna zapletenost: O(n + m)
Pomožni prostor: O(m)

Preverite podniz Python v nizu z uporabo čarobnega razreda __contains__.

Za preverjanje podniza python v nizu uporabimo __contains__(). Ta metoda se uporablja za preverjanje, ali je niz prisoten v drugem nizu ali ne.

Python3




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

>

>

Izhod

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

Časovna zapletenost: O(N)
Pomožni prostor: O(1)

Preverite podniz Python v nizu z uporabo rezanja

Preverite podniz python v nizu z uporabo rezanja. Ta izvedba uporablja zanko za ponavljanje skozi vse možne začetne indekse podniza v nizu in nato uporabi rezanje za primerjavo trenutnega podniza z argumentom podniza. Če se trenutni podniz ujema z argumentom podniza, potem funkcija vrne True, sicer vrne 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))>

>

>

Izhod

True>

Časovna zapletenost: O(n*m)
kjer je n dolžina argumenta niza in m je dolžina argumenta podniza. To je zato, ker funkcija uporablja zanko za ponavljanje skozi vse možne začetne indekse podniza v nizu in nato uporablja rezanje za primerjavo trenutnega podniza z argumentom podniza. V najslabšem primeru se bo zanka ponovila n-m+1-krat in vsaka operacija rezine traja O(m) časa, kar ima za posledico skupno časovno kompleksnost O((n-m+1)m) = O(nm) .
Pomožni prostor: O(1)

Preverite podniz Python v nizu z uporabo regularnega izraza

V Pythonu lahko preverite, ali je podniz python v nizu prisoten z uporabo regularni izrazi . Regularni izrazi zagotavljajo zmogljive zmožnosti ujemanja vzorcev, kar vam omogoča definiranje kompleksnih iskalnih vzorcev za ujemanje podnizov. Tukaj je opisano, kako lahko uporabite regularne izraze za preverjanje podniza v nizu.

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'>)>

>

>

Izhod

Yes! it is present in the string>

Časovna zapletenost: O(n), kjer je n dolžina vhodnega niza.
Kompleksnost prostora: O(1), ker ne uporabljamo dodatnega prostora

Preverite podniz Python v nizu z uporabo metode operator.contains().

Uporabljen ta pristopoperator.contains()metoda za preverjanje, ali je podniz prisoten v nizu. Če je pogoj True, natisni da, sicer natisni št

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'>)>

>

>

abecedne številke

Izhod

Yes>

Časovna zapletenost: O(N)
Pomožni prostor: O(1)