Tjek, om streng indeholder understreng i Python
Denne artikel vil dække, hvordan man kontrollerer, om en Python streng indeholder en anden streng eller en understreng i Python. Givet to strenge, tjek om en understreng er i den givne streng.
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.
Python-understreng i streng
Kontrol af en understreng er en af de mest brugte opgaver i Python. Python bruger mange metoder til at kontrollere en streng, der indeholder en understreng som, find(), index(), count() osv. Den mest effektive og hurtige metode er ved at bruge en i operator, der bruges som sammenligningsoperator. Her vil vi dække forskellige tilgange:
- Brug af If-Else
- Bruger In Operator
- Kontrol vha split() metode
- Ved brug af find() metode
- Ved brug af count() metode
- Ved brug af index() metode
- Brug af listeforståelse
- Bruger lambda funktion
- Brug af __contains__ magic class.
- Brug af udskæringsfunktionen
- Ved brug af regulære udtryk
- bruger operatoren contains() metode
Kontrollere Python-understreng i streng ved hjælp af If-Else
I Python kan du kontrollere, at python-understrengen i strengen er til stede ved hjælp af en hvis ellers udmelding. If-else-sætningen giver dig mulighed for betinget at udføre forskellige kodeblokke baseret på, om betingelsen er sand eller falsk.
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'> )> |
Produktion
Yes! it is present in the string
Tidskompleksitet: På)
Hjælpeplads: O(1)
Kontrollerer Python Substring i String ved hjælp af I Operatør
I Python kan du nemt kontrollere, om en understreng er til stede i en given streng ved hjælp af in> operatør. Det in> operator bruges til at teste, om en bestemt værdi (understreng) findes i en sekvens.
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!'> )> |
Produktion
Substring found! Substring not found!
Tidskompleksitet: På)
Hjælpeplads: O(1)
Kontrollerer Python Substring i String ved hjælp af Split() metoden
Kontrollerer, at python-understrengen i strengen er til stede eller ikke bruger dele(). Opdel først den givne streng i ord og gem dem i en variabel s, og brug derefter if-betingelsen til at kontrollere, om en understreng er til stede i den givne streng eller ej.
Python3
# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->tager input fra brugeren> 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'> )> |
Produktion
Yes
Tidskompleksitet: O(n + m)
Hjælpeplads: På)
Tjek Python Substring i String ved hjælp af Find() metoden
Vi kan iterativt tjekke for hvert ord, men Python giver os en indbygget funktion Find() som tjekker om en understreng er til stede i strengen, hvilket gøres på én linje. find()-funktionen returnerer -1, hvis den ikke findes, ellers returnerer den den første forekomst, så ved at bruge denne funktion kan dette problem løses.
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)> |
Produktion
Yes
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python-understrengen i streng ved hjælp af Count()-metoden
Du kan også tælle antallet af forekomster af en specifik understreng i en streng, så kan du bruge Python tælle() metode. Hvis understrengen ikke findes, udskrives ja, ellers udskrives nej.
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)> |
Produktion
No
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i streng ved hjælp af Index() metode
Det Index() metode returnerer startindekset for den delstreng, der sendes som en parameter. Her understreng er til stede på indeks 16.
Python3
any_string> => 'Geeks for Geeks substring '> start> => 0> end> => 1000> print> (any_string.index(> 'substring'> , start, end))> |
Produktion
16
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i String u synge Listeforståelse
For at kontrollere Python understreng i streng ved hjælp af listeforståelse . Brug af listeforståelse giver en kortfattet måde at kontrollere for en understreng i en streng og afgøre, om den findes i nogen af ordene.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> print> ([> 'yes'> if> s2> in> s> else> 'no'> ])> |
Produktion
['Yes']
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i String ved hjælp af Lambda-funktionen
For at kontrollere Python understreng i streng ved hjælp af lambda funktion . Brug af en lambda-funktion giver en kortfattet måde at kontrollere for en understreng i en streng og afgøre, om den findes i nogen af ordene.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> x> => list> (> filter> (> lambda> x: (s2> in> s),s.split()))> print> ([> 'yes'> if> x> else> 'no'> ])> |
Produktion
['Yes']
Tidskompleksitet: O(n + m)
Hjælpeplads: O(m)
Tjek Python Substring i String ved hjælp af magicklassen __contains__.
For at kontrollere python-understreng i streng bruger vi __contains__(). Denne metode bruges til at kontrollere, om strengen er til stede i den anden streng eller ej.
Python3
a> => [> 'Geeks-13'> ,> 'for-56'> ,> 'Geeks-78'> ,> 'xyz-46'> ]> for> i> in> a:> > if> i.__contains__(> 'Geeks'> ):> > print> (f> 'Yes! {i} is containing.'> )> |
Produktion
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)
Tjek Python Substring i String ved hjælp af udskæring
Tjek python-understreng i streng ved hjælp af udskæring. Denne implementering bruger en løkke til at iterere gennem alle mulige startindekser for understrengen i strengen og bruger derefter udskæring for at sammenligne den aktuelle understreng med understrengsargumentet. Hvis den aktuelle understreng matcher understrengsargumentet, returnerer funktionen True ellers returnerer 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))> |
Produktion
True
Tidskompleksitet: O(n*m)
hvor n er længden af strengargumentet, og m er længden af understrengsargumentet. Dette skyldes, at funktionen bruger en løkke til at iterere gennem alle mulige startindeks for understrengen i strengen og derefter bruger udskæring til at sammenligne den aktuelle understreng med understrengsargumentet. I værste tilfælde vil løkken iterere n-m+1 gange, og hver skiveoperation tager O(m) tid, hvilket resulterer i en samlet tidskompleksitet på O((n-m+1)m) = O(nm) .
Hjælpeplads: O(1)
Tjek Python-understrengen i streng ved hjælp af regulært udtryk
I Python kan du kontrollere, at python-understrengen i strengen er til stede ved hjælp af regulære udtryk . Regulære udtryk giver kraftfulde mønstermatchningsfunktioner, så du kan definere komplekse søgemønstre til understrengsmatchning. Sådan kan du bruge regulære udtryk til at tjekke for en understreng i en streng.
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'> )> |
Produktion
Yes! it is present in the string
Tidskompleksitet: O(n), hvor n er længden af inputstrengen.
Rumkompleksitet: O(1), da vi ikke bruger ekstra plads
Tjek Python Substring i String ved at bruge metoden operator.contains().
Denne tilgang brugt operator.contains() metode til at kontrollere om understrengen er til stede i streng Hvis betingelsen er True print ja ellers print no
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'> )> |
Produktion
Yes
Tidskompleksitet: PÅ)
Hjælpeplads: O(1)