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.
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 uporabo in> operater. The in> 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.
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 pristop operator.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'> )> |
Izhod
Yes
Časovna zapletenost: O(N)
Pomožni prostor: O(1)