Sjekk om streng inneholder delstreng i Python

Denne artikkelen vil dekke hvordan du sjekker om en Python streng inneholder en annen streng eller en delstreng i Python. Gitt to strenger, sjekk om en delstreng er i den gitte strengen.

  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

Å sjekke en understreng er en av de mest brukte oppgavene i Python. Python bruker mange metoder for å sjekke en streng som inneholder en delstreng som, find(), index(), count() osv. Den mest effektive og raske metoden er å bruke en i operator som brukes som en sammenligningsoperator. Her vil vi dekke ulike tilnærminger:

  • Bruke If-Else
  • Bruker In Operator
  • Kontroller ved hjelp av split() metode
  • Ved hjelp av find() metode
  • Ved hjelp av count() metode
  • Ved hjelp av index() metode
  • Bruke listeforståelse
  • Bruker lambda-funksjon
  • Bruke __contains__ magic class.
  • Bruke skjæringsfunksjonen
  • Ved hjelp av vanlig uttrykk
  • bruker operatoren contains()-metoden

Kryss av Python-understreng i streng ved å bruke If-Else

I Python kan du sjekke at python-delstrengen i strengen er tilstede ved å bruke en hvis-annet uttalelse. If-else-setningen lar deg betinget utføre forskjellige kodeblokker basert på om betingelsen er sann eller usann.

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

Produksjon

Yes! it is present in the string 

Tidskompleksitet: På)
Hjelpeplass: O(1)

Sjekker Python Substring i String ved hjelp av I Operatør

I Python kan du enkelt sjekke om en delstreng er til stede i en gitt streng ved å bruke in> operatør. De in> operator brukes til å teste om en bestemt verdi (delstreng) eksisterer 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!'> )>

Produksjon

Substring found! Substring not found! 

Tidskompleksitet: På)
Hjelpeplass: O(1)

Sjekker Python Substring i String ved hjelp av Split()-metoden

Kontrollerer at python-delstrengen i strengen er tilstede eller ikke bruker dele(). Del først den gitte strengen i ord og lagre dem i en variabel s, og bruk deretter if-betingelsen, sjekk om en understreng er til stede i den gitte strengen eller ikke.

Python3




# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->tar innspill fra brukeren> 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'> )>

Produksjon

Yes 

Tidskompleksitet: O(n + m)
Hjelpeplass: På)

Sjekk Python Substring i String ved å bruke Find()-metoden

Vi kan iterativt sjekke for hvert ord, men Python gir oss en innebygd funksjon finne() som sjekker om en delstreng er tilstede i strengen, noe som gjøres på én linje. funn()-funksjonen returnerer -1 hvis den ikke blir funnet, ellers returnerer den den første forekomsten, så ved å bruke denne funksjonen kan dette problemet 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)>

Produksjon

Yes 

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

Sjekk Python-delstrengen i streng ved å bruke Count()-metoden

Du kan også telle antall forekomster av en bestemt delstreng i en streng, så kan du bruke Python telle() metode. Hvis delstrengen ikke blir funnet, vil ja skrives ut ellers vil nei bli skrevet ut.

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

Produksjon

No 

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

Sjekk Python-delstrengen i strengen ved å bruke Index()-metoden

De Index() metode returnerer startindeksen til delstrengen som 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))>

Produksjon

16 

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

Sjekk Python Substring i String u synge Listeforståelse

For å sjekke Python-delstreng i streng ved å bruke listeforståelse . Å bruke listeforståelse gir en kortfattet måte å se etter en delstreng i en streng og finne ut om den finnes i noen av ordene.

Python3




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

Produksjon

['Yes'] 

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

Sjekk Python Substring i String ved å bruke Lambda-funksjonen

For å sjekke Python-delstreng i streng ved å bruke lambda funksjon . Å bruke en lambda-funksjon gir en kortfattet måte å se etter en delstreng i en streng og finne ut om den finnes i noen av ordene.

Python3




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

Produksjon

['Yes'] 

Tidskompleksitet: O(n + m)
Hjelpeplass: O(m)

Sjekk Python Substring i String ved å bruke magiklassen __contains__.

For å sjekke python-delstreng i streng bruker vi __contains__(). Denne metoden brukes til å sjekke om strengen er til stede i den andre strengen eller ikke.

Python3




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

Produksjon

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

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)

Sjekk Python Substring i String ved hjelp av skjæring

Sjekk python-delstrengen i strengen ved hjelp av skjæring. Denne implementeringen bruker en løkke for å iterere gjennom alle mulige startindekser for delstrengen i strengen, og bruker deretter skjæring for å sammenligne gjeldende delstreng med delstrengargumentet. Hvis den gjeldende delstrengen samsvarer med delstrengargumentet, returnerer funksjonen 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))>

Produksjon

True 

Tidskompleksitet: På M)
der n er lengden på strengargumentet og m er lengden på delstrengargumentet. Dette er fordi funksjonen bruker en sløyfe for å iterere gjennom alle mulige startindekser for delstrengen i strengen og deretter bruker slicing for å sammenligne gjeldende delstreng med delstrengargumentet. I verste fall vil sløyfen iterere n-m+1 ganger, og hver skiveoperasjon tar O(m) tid, noe som resulterer i en total tidskompleksitet på O((n-m+1)m) = O(nm) .
Hjelpeplass: O(1)

Sjekk Python Substring i String ved hjelp av regulære uttrykk

I Python kan du sjekke at python-delstrengen i strengen er tilstede ved å bruke vanlig uttrykk . Regulære uttrykk gir kraftige mønstertilpasningsmuligheter, slik at du kan definere komplekse søkemønstre for understrengsamsvar. Slik kan du bruke regulære uttrykk for å se etter 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'> )>

Produksjon

Yes! it is present in the string 

Tidskompleksitet: O(n), hvor n er lengden på inndatastrengen.
Plass kompleksitet: O(1), siden vi ikke bruker noe ekstra plass

Sjekk Python Substring i String bruker metoden operator.contains().

Denne tilnærmingen brukes operator.contains() metode for å sjekke om delstrengen er tilstede 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'> )>

Produksjon

Yes 

Tidskompleksitet: PÅ)
Hjelpeplass: O(1)