logo

Pārbaudiet, vai virknē Python ir apakšvirkne

Šajā rakstā tiks apskatīts, kā pārbaudīt, vai a Python virkne satur citu virkni vai apakšvirkni Python. Dotas divas virknes, pārbaudiet, vai dotajā virknē ir apakšvirkne.

  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 apakšvirkne virknē

Apakšvirknes pārbaude ir viens no Python visbiežāk izmantotajiem uzdevumiem. Python izmanto daudzas metodes, lai pārbaudītu virkni, kas satur apakšvirkni, piemēram, find(), index(), count() utt. Visefektīvākā un ātrākā metode ir izmantot iekšā operators, kas tiek izmantots kā salīdzināšanas operators. Šeit mēs apskatīsim dažādas pieejas:



  • Izmantojot If-Else
  • Izmantošana operatorā
  • Pārbaude, izmantojot split() metode
  • Izmantojot Find() metode
  • Izmantojot count() metode
  • Izmantojot index() metode
  • Izmantojot saraksta izpratni
  • Izmantojot lambda funkciju
  • Izmantojot __contains__ burvju klasi.
  • Šķēlēšanas funkcijas izmantošana
  • Izmantojot regulāras izteiksmes
  • izmantojot operatora include() metodi

Pārbaudiet Python apakšvirkne virknē izmantojot If-Else

Programmā Python varat pārbaudīt python apakšvirknes esamību virknē, izmantojot a ja-citādi paziņojums, apgalvojums. Paziņojums if-else ļauj nosacīti izpildīt dažādus koda blokus atkarībā no tā, vai nosacījums ir patiess vai nepatiess.

Python3








java if paziņojums

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

>

>

Izvade

Yes! it is present in the string>

Laika sarežģītība: O(n)
Palīgtelpa: O(1)

Python apakšvirknes pārbaude virknē, izmantojot Sadaļā Operators

Programmā Python varat viegli pārbaudīt, vai noteiktā virknē ir apakšvirkne, izmantojotin>operators. Thein>operators tiek izmantots, lai pārbaudītu, vai secībā pastāv noteikta vērtība (apakšvirkne).

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

>

>

Izvade

Substring found! Substring not found!>

Laika sarežģītība: O(n)
Palīgtelpa: O(1)

Python apakšvirknes pārbaude virknē, izmantojot Split() metodi

Pārbauda, ​​vai virknē python apakšvirkne ir vai netiek izmantota sadalīt (). Vispirms sadaliet doto virkni vārdos un saglabājiet tos mainīgajā s, pēc tam, izmantojot nosacījumu if, pārbaudiet, vai dotajā virknē ir vai nav apakšvirkne.

Python3




# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->ņemot ievadi no lietotāja>> => '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'>)>

>

>

Izvade

Yes>

Laika sarežģītība: O(n+m)
Palīgtelpa: O(n)

Pārbaudiet Python apakšvirkni virknē, izmantojot Find() metodi

Mēs varam iteratīvi pārbaudīt katru vārdu, bet Python nodrošina mums iebūvētu funkciju atrast () kas pārbauda, ​​vai virknē ir apakšvirkne, kas tiek veikta vienā rindā. Funkcija find() atgriež -1, ja tā nav atrasta, pretējā gadījumā tā atgriež pirmo gadījumu, tāpēc, izmantojot šo funkciju, šo problēmu var atrisināt.

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

>

>

Izvade

Yes>

Laika sarežģītība: O(N)
Palīgtelpa: O(1)

Pārbaudiet Python apakšvirkni virknē, izmantojot Count() metodi

Varat arī saskaitīt noteiktas apakšvirknes gadījumu skaitu virknē, pēc tam varat izmantot Python skaitīt () metodi. Ja apakšvirkne netiek atrasta, tiks izdrukāts jā, pretējā gadījumā tiks izdrukāts nē.

Python3




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

>

>

Izvade

No>

Laika sarežģītība: O(N)
Palīgtelpa: O(1)

Pārbaudiet Python apakšvirkni virknē, izmantojot Index() metodi

The Indeksa() metode atgriež kā parametru nodotās apakšvirknes sākuma indeksu. Šeit apakšvirkne atrodas indeksā 16.

Python3




any_string>=> 'Geeks for Geeks substring '> start>=> 0> end>=> 1000> print>(any_string.index(>'substring'>, start, end))>

>

>

Izvade

16>

Laika sarežģītība: O(N)
Palīgtelpa: O(1)

Pārbaudiet Python apakšvirkni virknē u dziedāt List Comprehension

Lai pārbaudītu Python apakšvirkni virknē, izmantojot saraksta izpratne . Saraksta izpratnes izmantošana nodrošina īsu veidu, kā virknē pārbaudīt apakšvirkni un noteikt, vai tā pastāv kādā no vārdiem.

Python3




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

>

java programmēšanas valodas apmācība
>

Izvade

['Yes']>

Laika sarežģītība: O(N)
Palīgtelpa: O(1)

Pārbaudiet Python apakšvirkni virknē izmantojot lambda funkciju

Lai pārbaudītu Python apakšvirkni virknē, izmantojot lambda funkcija . Lambda funkcijas izmantošana nodrošina īsu veidu, kā virknē pārbaudīt apakšvirkni un noteikt, vai tā pastāv kādā no vārdiem.

Python3




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

>

>

Izvade

['Yes']>

Laika sarežģītība: O(n+m)
Palīgtelpa: O(m)

Pārbaudiet Python apakšvirkni virknē, izmantojot burvju klasi __contains__.

Lai pārbaudītu python apakšvirkni virknē, mēs izmantojam __contains__(). Šo metodi izmanto, lai pārbaudītu, vai virkne ir vai nav citā virknē.

Python3

kamēr cilpa java




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

>

>

Izvade

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

Laika sarežģītība: O(N)
Palīgtelpa: O(1)

Pārbaudiet Python apakšvirkni virknē izmantojot sagriešanu

Pārbaudiet python apakšvirkni virknē, izmantojot sagriešanu. Šī realizācija izmanto cilpu, lai atkārtotu katru iespējamo virknes apakšvirknes sākuma indeksu, un pēc tam izmanto sagriešana lai salīdzinātu pašreizējo apakšvirkni ar apakšvirknes argumentu. Ja pašreizējā apakšvirkne atbilst apakšvirknes argumentam, funkcija atgriež True, pretējā gadījumā atgriež 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))>

>

>

Izvade

True>

Laika sarežģītība: O(n*m)
kur n ir virknes argumenta garums un m ir apakšvirknes argumenta garums. Tas ir tāpēc, ka funkcija izmanto cilpu, lai atkārtotu visus iespējamos virknes apakšvirknes sākuma indeksus, un pēc tam izmanto sadalīšanu, lai salīdzinātu pašreizējo apakšvirkni ar apakšvirknes argumentu. Sliktākajā gadījumā cilpa atkārtosies n-m+1 reizes, un katra šķēluma darbība aizņem O(m) laiku, kā rezultātā kopējā laika sarežģītība ir O((n-m+1)m) = O(nm) .
Palīgtelpa: O(1)

Pārbaudiet Python apakšvirkni virknē, izmantojot regulāro izteiksmi

Programmā Python varat pārbaudīt, vai virknē python apakšvirkne ir, izmantojot regulāras izteiksmes . Regulārās izteiksmes nodrošina jaudīgas paraugu saskaņošanas iespējas, ļaujot definēt sarežģītus meklēšanas modeļus apakšvirknes saskaņošanai. Lūk, kā varat izmantot regulāras izteiksmes, lai pārbaudītu, vai virknē nav apakšvirknes.

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

>

>

Izvade

Yes! it is present in the string>

Laika sarežģītība: O(n), kur n ir ievades virknes garums.
Kosmosa sarežģītība: O(1), jo mēs neizmantojam papildu vietu

Pārbaudiet Python apakšvirkni virknē izmantojot operator.contains() metodi

Šī pieeja tika izmantotaoperator.contains()metode, lai pārbaudītu, vai virknē ir apakšvirkne Ja nosacījums ir Patiess, drukāt jā, pretējā gadījumā drukāt nē

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

>

>

Izvade

Yes>

Laika sarežģītība: O(N)
Palīgtelpa: O(1)