Tässä artikkelissa kerrotaan, kuinka voit tarkistaa, onko a Python merkkijono sisältää toisen merkkijonon tai alimerkkijonon Pythonissa. Tarkista kaksi merkkijonoa, onko annetussa merkkijonossa jokin osamerkkijono.
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-alimerkkijono merkkijonossa
Osamerkkijonon tarkistaminen on yksi Pythonin eniten käytetyistä tehtävistä. Python käyttää monia menetelmiä alimerkkijonon sisältävän merkkijonon tarkistamiseen, kuten find(), index(), count() jne. Tehokkain ja nopein tapa on käyttää sisään operaattori, jota käytetään vertailuoperaattorina. Tässä käsittelemme erilaisia lähestymistapoja:
- If-Elsen käyttäminen
- Käyttö Operaattorissa
- Tarkistetaan käyttämällä split()-menetelmä
- Käyttämällä Find() -menetelmä
- Käyttämällä count() -menetelmä
- Käyttämällä index() -menetelmä
- Listan ymmärtämisen käyttö
- Käytä lambda-toimintoa
- Käyttämällä __contains__ taikaluokkaa.
- Viipalointitoiminnon käyttäminen
- Käyttämällä säännöllisiä lausekkeita
- käyttämällä operaattori sisältää() -menetelmää
Tarkistaa Python-alimerkkijono merkkijonossa käyttämällä If-Elseä
Pythonissa voit tarkistaa python-alimerkkijonon merkkijonossa käyttämällä a tai muuten lausunto. If-else-käskyn avulla voit ehdollisesti suorittaa erilaisia koodilohkoja sen mukaan, onko ehto tosi vai epätosi.
Python 3
# 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'> )> |
>
>
Lähtö
Yes! it is present in the string>
Aika monimutkaisuus: Päällä)
Aputila: O(1)
Python-alijonon tarkistus merkkijonossa käyttämällä Operaattorissa
Pythonissa voit helposti tarkistaa, onko tietyssä merkkijonossa alimerkkijono käyttämälläin>
operaattori. Thein>
-operaattoria käytetään testaamaan, onko sekvenssissä tietty arvo (osamerkkijono).
Python 3
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!'> )> |
>
>
mikä on rakenne tietorakenteessa
Lähtö
Substring found! Substring not found!>
Aika monimutkaisuus: Päällä)
Aputila: O(1)
Python-alijonon tarkistaminen merkkijonosta Split()-menetelmällä
Python-alimerkkijonon tarkistus merkkijonossa on olemassa tai sitä ei käytetä jakaa(). Jaa ensin annettu merkkijono sanoiksi ja tallenna ne muuttujaan s ja tarkista sitten if-ehdon avulla, onko annetussa merkkijonossa alimerkkijono vai ei.
Python 3
# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->ottaa syötteen käyttäjältä>> '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'> )> |
>
>
Lähtö
Yes>
Aika monimutkaisuus: O(n + m)
Aputila: Päällä)
Tarkista Python-alijono merkkijonosta Find()-menetelmällä
Voimme tarkistaa iteratiivisesti jokaisen sanan, mutta Python tarjoaa meille sisäänrakennetun toiminnon löytö() joka tarkistaa, onko merkkijonossa alimerkkijono, mikä tehdään yhdellä rivillä. Find()-funktio palauttaa arvon -1, jos sitä ei löydy, muuten se palauttaa ensimmäisen esiintymän, joten tätä funktiota käyttämällä tämä ongelma voidaan ratkaista.
Python 3
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)> |
>
>
Lähtö
Yes>
Aika monimutkaisuus: PÄÄLLÄ)
Aputila: O(1)
Tarkista Python-alijono merkkijonosta Count()-menetelmällä
Voit myös laskea tietyn alimerkkijonon esiintymien lukumäärän merkkijonossa, jolloin voit käyttää Python- Kreivi() menetelmä. Jos alimerkkijonoa ei löydy, tulostuu kyllä, muuten tulostetaan ei.
Python 3
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)> |
>
>
Lähtö
No>
Aika monimutkaisuus: PÄÄLLÄ)
Aputila: O(1)
Tarkista Python-alimerkkijono merkkijonossa käyttämällä Index()-menetelmää
The Index()-menetelmä palauttaa parametrina välitetyn osamerkkijonon aloitusindeksin. Tässä alamerkkijono on indeksissä 16.
Python 3
any_string> => 'Geeks for Geeks substring '> start> => 0> end> => 1000> print> (any_string.index(> 'substring'> , start, end))> |
>
java saa nykyisen päivämäärän
>
Lähtö
16>
Aika monimutkaisuus: PÄÄLLÄ)
Aputila: O(1)
Tarkista Python-alimerkkijono merkkijonosta u laulaa Listan ymmärtäminen
Python-alimerkkijonon tarkistaminen merkkijonossa käyttämällä listan ymmärtäminen . Listan ymmärtäminen tarjoaa tiiviin tavan tarkistaa alimerkkijono merkkijonosta ja määrittää, onko se jossakin sanassa.
Python 3
s> => 'geeks for geeks'> s2> => 'geeks'> print> ([> 'yes'> if> s2> in> s> else> 'no'> ])> |
>
>
Lähtö
['Yes']>
Aika monimutkaisuus: PÄÄLLÄ)
Aputila: O(1)
Tarkista Python-alimerkkijono merkkijonosta käyttämällä lambda-toimintoa
Python-alimerkkijonon tarkistaminen merkkijonossa käyttämällä lambda-toiminto . Lambda-funktion käyttäminen tarjoaa tiiviin tavan tarkistaa, onko merkkijonossa merkkijono ja onko se olemassa jossakin sanassa.
Python 3
s> => 'geeks for geeks'> s2> => 'geeks'> x> => list> (> filter> (> lambda> x: (s2> in> s),s.split()))> print> ([> 'yes'> if> x> else> 'no'> ])> |
>
>
Lähtö
['Yes']>
Aika monimutkaisuus: O(n + m)
Aputila: O(m)
Tarkista Python-alimerkkijono merkkijonossa käyttämällä __contains__ magic-luokkaa.
Python-alimerkkijonon tarkistamiseksi merkkijonossa käytämme __contains__(). Tätä menetelmää käytetään tarkistamaan, onko merkkijono toisessa merkkijonossa vai ei.
Python 3
a> => [> 'Geeks-13'> ,> 'for-56'> ,> 'Geeks-78'> ,> 'xyz-46'> ]> for> i> in> a:> > if> i.__contains__(> 'Geeks'> ):> > print> (f> 'Yes! {i} is containing.'> )> |
>
>
Lähtö
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.>
Aika monimutkaisuus: PÄÄLLÄ)
Aputila: O(1)
Tarkista Python-alimerkkijono merkkijonosta käyttämällä viipalointia
Tarkista python-alamerkkijono merkkijonossa viipaloimalla. Tämä toteutus käyttää silmukkaa iteroidakseen kaikki mahdolliset merkkijonon alimerkkijonon aloitusindeksit ja käyttää sitten viipalointi verrata nykyistä osamerkkijonoa alimerkkijonoargumenttiin. Jos nykyinen osamerkkijono vastaa osamerkkijonoargumenttia, funktio palauttaa True, muuten palauttaa False.
Python 3
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))> |
>
nopea lajittelu
>
Lähtö
True>
Aika monimutkaisuus: O(n*m)
missä n on merkkijonoargumentin pituus ja m on osamerkkijonoargumentin pituus. Tämä johtuu siitä, että funktio käyttää silmukkaa iteroidakseen läpi merkkijonon kaikki mahdolliset aloitusindeksit ja vertaa sitten nykyistä osamerkkijonoa alimerkkijonoargumenttiin viipaloinnin avulla. Pahimmassa tapauksessa silmukka toistuu n-m+1 kertaa, ja jokainen viipaleoperaatio kestää O(m) aikaa, jolloin kokonaisaikamonimutkaisuus on O((n-m+1)m) = O(nm) .
Aputila: O(1)
Tarkista Python-alimerkkijono merkkijonosta säännöllisen lausekkeen avulla
Pythonissa voit tarkistaa, onko merkkijonossa python-alimerkkijono läsnä käyttämällä säännöllisiä lausekkeita . Säännölliset lausekkeet tarjoavat tehokkaita kuvioiden täsmäytysominaisuuksia, joiden avulla voit määrittää monimutkaisia hakumalleja alimerkkijonoa varten. Näin voit käyttää säännöllisiä lausekkeita tarkistaaksesi, onko merkkijonossa alimerkki.
Python 3
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'> )> |
>
>
Lähtö
Yes! it is present in the string>
Aika monimutkaisuus: O(n), missä n on syötetyn merkkijonon pituus.
Tilan monimutkaisuus: O(1), koska emme käytä lisätilaa
Tarkista Python-alimerkkijono merkkijonosta käyttämällä operator.contains()-menetelmää
Tätä lähestymistapaa käytettyoperator.contains()tapa tarkistaa, onko alimerkkijono merkkijonossa Jos ehto on True tulosta kyllä muuten tulosta ei
Python 3
#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'> )> |
>
>
Lähtö
Yes>
Aika monimutkaisuus: PÄÄLLÄ)
Aputila: O(1)