Šiame straipsnyje bus aptarta, kaip patikrinti, ar a Python eilutėje yra kita eilutė arba poeilutė Python. Pateiktos dvi eilutės, patikrinkite, ar nurodytoje eilutėje yra poeilutė.
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 poeilutė eilutėje
Poeilutės tikrinimas yra viena iš dažniausiai naudojamų Python užduočių. Python naudoja daug metodų, kad patikrintų eilutę, kurioje yra poeilutė, pvz., find(), index(), count() ir tt Veiksmingiausias ir greičiausias metodas yra naudoti in operatorius, kuris naudojamas kaip palyginimo operatorius. Čia apžvelgsime skirtingus metodus:
- „If-Else“ naudojimas
- Naudojimas Operatoriuje
- Tikrinama naudojant split() metodas
- Naudojant Find() metodas
- Naudojant count() metodas
- Naudojant index() metodas
- Sąrašo supratimo naudojimas
- Naudojant lambda funkciją
- Naudojant __contains__ magijos klasę.
- Pjaustymo funkcijos naudojimas
- Naudojant reguliarios išraiškos
- naudojant operatorių include() metodą
Patikrinti Python poeilutė eilutėje naudojant If-Else
„Python“ galite patikrinti, ar eilutėje yra „python“ poeilutė, naudodami a jei-kitaip pareiškimas. Jei-else teiginys leidžia sąlygiškai vykdyti skirtingus kodo blokus, atsižvelgiant į tai, ar sąlyga teisinga, ar klaidinga.
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'>)> |
>
>
Išvestis
Yes! it is present in the string>
Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(1)
„Python“ poeilutės tikrinimas eilutėje naudojant Operatoriuje
„Python“ galite lengvai patikrinti, ar tam tikroje eilutėje yra poeilutė, naudodamiin>operatorius. Thein>operatorius naudojamas patikrinti, ar sekoje yra tam tikra reikšmė (poeilutė).
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!'>)> |
>
>
Išvestis
Substring found! Substring not found!>
Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(1)
Python poeilutės tikrinimas eilutėje naudojant Split() metodą
Tikrinamas python poeilutė eilutėje yra arba nenaudojama padalinti (). Pirmiausia padalykite nurodytą eilutę į žodžius ir išsaugokite juos kintamajame s, tada naudodami sąlygą if patikrinkite, ar nurodytoje eilutėje yra poeilutė, ar ne.
Python3
# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->priimant vartotojo įvestį>> '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'>)> |
>
>
Išvestis
Yes>
Laiko sudėtingumas: O(n + m)
Pagalbinė erdvė: O(n)
Patikrinkite Python poeutę eilutėje naudodami Find() metodą
Galime pakartotinai patikrinti kiekvieną žodį, tačiau Python suteikia mums integruotą funkciją rasti () kuri patikrina, ar eilutėje yra poeilutė, kuri atliekama vienoje eilutėje. Funkcija find() grąžina -1, jei ji nerasta, kitu atveju ji grąžina pirmąjį atvejį, todėl naudojant šią funkciją šią problemą galima išspręsti.
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)> |
>
>
Išvestis
Yes>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(1)
Patikrinkite Python eilutę eilutėje naudodami Count() metodą
Taip pat galite suskaičiuoti konkrečios poeilutės pasikartojimų skaičių eilutėje, tada galite naudoti Python skaiciuoti () metodas. Jei poeilutė nerasta, bus išspausdinta taip, kitaip bus išspausdinta ne.
Python3
tipo konvertavimas ir liejimas Java
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)> |
>
>
Išvestis
No>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(1)
Patikrinkite Python poeutę eilutėje naudodami Index() metodą
The Index() metodas grąžina pradinį poeilutės, perduotos kaip parametras, indeksą. Čia poeilutė yra 16 indekse.
Python3
any_string>=> 'Geeks for Geeks substring '> start>=> 0> end>=> 1000> print>(any_string.index(>'substring'>, start, end))> |
>
>
Išvestis
16>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(1)
Patikrinkite Python poeilelę eilutėje u dainuoti Sąrašo supratimas
Norėdami patikrinti Python poeutę eilutėje naudodami sąrašo supratimas . Sąrašo supratimo naudojimas suteikia glaustą būdą patikrinti, ar eilutėje yra poeilutė, ir nustatyti, ar ji egzistuoja kuriame nors iš žodžių.
Python3
dirbtinis intelektas ir intelektualūs agentai
s>=>'geeks for geeks'> s2>=>'geeks'> print>([>'yes'> if> s2>in> s>else> 'no'>])> |
>
>
Išvestis
['Yes']>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(1)
Patikrinkite Python eilutę eilutėje naudojant lambda funkciją
Norėdami patikrinti Python poeutę eilutėje naudodami lambda funkcija . Naudojant lambda funkciją, pateikiamas glaustas būdas patikrinti, ar eilutėje yra poeilutė, ir nustatyti, ar ji egzistuoja kuriame nors iš žodžių.
Python3
s>=>'geeks for geeks'> s2>=>'geeks'> x>=>list>(>filter>(>lambda> x: (s2>in> s),s.split()))> print>([>'yes'> if> x>else> 'no'>])> |
>
>
Išvestis
['Yes']>
Laiko sudėtingumas: O(n + m)
Pagalbinė erdvė: O(m)
Patikrinkite Python eilutę eilutėje naudodami magijos klasę __contains__.
Norėdami patikrinti python eilutę eilutėje, naudojame __contains__(). Šis metodas naudojamas norint patikrinti, ar eilutė yra kitoje eilutėje, ar 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.'>)> |
>
>
Išvestis
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(1)
Patikrinkite Python eilutę eilutėje naudojant pjaustymą
Patikrinkite python poeilelę eilutėje naudodami pjaustymą. Šis įgyvendinimas naudoja kilpą, kad kartotų kiekvieną įmanomą eilutės poeilės pradinį indeksą, o tada pjaustymas norėdami palyginti dabartinę eilutę su poeilutės argumentu. Jei dabartinė poeilutė atitinka poeilutės argumentą, funkcija grąžina True, priešingu atveju grąžina 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))> |
>
>
Išvestis
True>
Laiko sudėtingumas: O(n*m)
kur n yra eilutės argumento ilgis, o m yra eilutės argumento ilgis. Taip yra todėl, kad funkcija naudoja kilpą, kad kartotų kiekvieną įmanomą eilutės poeilutės pradinį indeksą, o tada naudoja pjaustymą, kad palygintų dabartinę poeilelę su poeilutės argumentu. Blogiausiu atveju kilpa kartosis n-m+1 kartų, o kiekviena pjūvio operacija trunka O(m) laiko, todėl bendras laiko sudėtingumas yra O((n-m+1)m) = O(nm) .
Pagalbinė erdvė: O(1)
Patikrinkite Python eilutę eilutėje naudodami reguliarųjį reiškinį
„Python“ galite patikrinti, ar eilutėje yra „python“ poeilutė, naudodami reguliarios išraiškos . Reguliarios išraiškos suteikia galingas šablonų atitikimo galimybes, leidžiančias apibrėžti sudėtingus poeilutės atitikimo paieškos šablonus. Štai kaip galite naudoti įprastus posakius, kad patikrintumėte, ar eilutėje yra poeilutė.
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'>)> |
>
>
Išvestis
Yes! it is present in the string>
Laiko sudėtingumas: O(n), kur n yra įvesties eilutės ilgis.
Erdvės sudėtingumas: O(1), nes nenaudojame jokios papildomos vietos
Patikrinkite Python eilutę eilutėje naudojant operator.contains() metodą
Taikomas šis metodasoperator.contains()būdas patikrinti, ar eilutėje yra poeilutė Jei sąlyga yra True spausdinti taip, kitaip spausdinti ne
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'>)> |
>
>
Išvestis
Yes>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(1)