logo

Zkontrolujte, zda řetězec obsahuje podřetězec v Pythonu

Tento článek se bude zabývat tím, jak zkontrolovat, zda a Krajta string obsahuje jiný řetězec nebo podřetězec v Pythonu. Jsou-li uvedeny dva řetězce, zkontrolujte, zda je v daném řetězci podřetězec.

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

Podřetězec Pythonu v řetězci

Kontrola podřetězce je jednou z nejpoužívanějších úloh v Pythonu. Python používá mnoho metod ke kontrole řetězce obsahujícího podřetězec jako, find(), index(), count() atd. Nejúčinnější a nejrychlejší metodou je použití v operátor, který se používá jako porovnávací operátor. Zde se budeme zabývat různými přístupy:



  • Použití If-Else
  • Použití In Operator
  • Kontrola pomocí metoda split().
  • Použitím metoda find().
  • Použitím metoda count().
  • Použitím metoda index().
  • Použití porozumění seznamu
  • Použití funkce lambda
  • Použití magické třídy __contains__.
  • Použití funkce krájení
  • Použitím regulární výrazy
  • pomocí metody operátor obsahuje().

Šek Podřetězec Pythonu v řetězci pomocí If-Else

V Pythonu můžete zkontrolovat přítomnost podřetězce pythonu v řetězci pomocí a pokud-jinak prohlášení. Příkaz if-else umožňuje podmíněně provádět různé bloky kódu na základě toho, zda je podmínka pravdivá nebo nepravdivá.

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

>

>

Výstup

Yes! it is present in the string>

Časová náročnost: Na)
Pomocný prostor: O(1)

Kontrola podřetězce Pythonu v řetězci pomocí V Operátor

V Pythonu můžete snadno zkontrolovat, zda je v daném řetězci přítomen podřetězec pomocíin>operátor. Thein>Operátor se používá k testování, zda v sekvenci existuje určitá hodnota (podřetězec).

Python3

if else příkaz java




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

>

>

Výstup

Substring found! Substring not found!>

Časová náročnost: Na)
Pomocný prostor: O(1)

Kontrola podřetězce Pythonu v řetězci pomocí metody Split().

Kontrola, zda je podřetězec pythonu v řetězci přítomen nebo se nepoužívá rozdělit(). Nejprve rozdělte daný řetězec na slova a uložte je do proměnné s a poté pomocí podmínky if zkontrolujte, zda je v daném řetězci přítomen podřetězec či nikoliv.

Python3




# input strings str1 and substr> string>=> 'geeks for geeks'> # or string=input() ->přebírání vstupu od uživatele>>> => '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'>)>

>

>

Výstup

Yes>

Časová náročnost: O(n + m)
Pomocný prostor: Na)

Zkontrolujte podřetězec Pythonu v řetězci pomocí metody Find().

Můžeme iterativně kontrolovat každé slovo, ale Python nám poskytuje vestavěnou funkci nalézt() který kontroluje, zda je v řetězci přítomen podřetězec, což se provádí na jednom řádku. funkce find() vrátí -1, pokud není nalezena, jinak vrátí první výskyt, takže pomocí této funkce lze tento problém vyřešit.

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

>

>

Výstup

Yes>

Časová náročnost: NA)
Pomocný prostor: O(1)

Zkontrolujte podřetězec Pythonu v řetězci pomocí metody Count().

Můžete také spočítat počet výskytů konkrétního podřetězce v řetězci, pak můžete použít Python počet() metoda. Pokud podřetězec není nalezen, vytiskne se ano, jinak se vytiskne ne.

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

>

>

Výstup

No>

Časová náročnost: NA)
Pomocný prostor: O(1)

Zkontrolujte podřetězec Pythonu v řetězci pomocí metody Index().

The Metoda Index(). vrátí počáteční index podřetězce předaného jako parametr. Tady podřetězec je přítomen na indexu 16.

Python3




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

>

>

Výstup

16>

Časová náročnost: NA)
Pomocný prostor: O(1)

Zkontrolujte podřetězec Pythonu v String u zpívat List Comprehension

Chcete-li zkontrolovat podřetězec Pythonu v řetězci, použijte porozumění seznamu . Použití porozumění seznamu poskytuje stručný způsob, jak zkontrolovat podřetězec v řetězci a určit, zda existuje v některém ze slov.

Python3




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

>

>

Výstup

['Yes']>

Časová náročnost: NA)
Pomocný prostor: O(1)

Zkontrolujte podřetězec Pythonu v řetězci pomocí funkce Lambda

Chcete-li zkontrolovat podřetězec Pythonu v řetězci, použijte funkce lambda . Použití funkce lambda poskytuje stručný způsob, jak zkontrolovat podřetězec v řetězci a určit, zda existuje v některém ze slov.

Python3




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

>

>

Výstup

['Yes']>

Časová náročnost: O(n + m)
Pomocný prostor: O(m)

Zkontrolujte podřetězec Pythonu v řetězci pomocí magické třídy __contains__.

Pro kontrolu podřetězce pythonu v řetězci používáme __contains__(). Tato metoda se používá ke kontrole, zda je řetězec přítomen v druhém řetězci nebo 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.'>)>

>

>

Výstup

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

Časová náročnost: NA)
Pomocný prostor: O(1)

Zkontrolujte podřetězec Pythonu v řetězci pomocí krájení

Zkontrolujte podřetězec pythonu v řetězci pomocí krájení. Tato implementace používá smyčku k iteraci všemi možnými počátečními indexy podřetězce v řetězci a poté používá krájení pro porovnání aktuálního podřetězce s argumentem podřetězce. Pokud aktuální podřetězec odpovídá argumentu podřetězce, pak funkce vrátí hodnotu True, jinak vrátí hodnotu 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))>

>

>

Výstup

True>

Časová náročnost: O(n*m)
kde n je délka argumentu řetězce a m je délka argumentu podřetězce. Důvodem je to, že funkce používá smyčku k iteraci všemi možnými počátečními indexy podřetězce v řetězci a poté pomocí krájení porovnává aktuální podřetězec s argumentem podřetězce. V nejhorším případě se smyčka bude opakovat n-m+1krát a každá operace řezu trvá O(m) čas, což má za následek celkovou časovou složitost O((n-m+1)m) = O(nm) .
Pomocný prostor: O(1)

Zkontrolujte podřetězec Pythonu v řetězci pomocí regulárního výrazu

V Pythonu můžete zkontrolovat přítomnost podřetězce pythonu v řetězci pomocí regulární výrazy . Regulární výrazy poskytují výkonné možnosti porovnávání vzorů, což vám umožňuje definovat složité vzorce vyhledávání pro shodu podřetězců. Zde je návod, jak můžete pomocí regulárních výrazů zkontrolovat podřetězec v řetězci.

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

>

>

Výstup

Yes! it is present in the string>

Časová náročnost: O(n), kde n je délka vstupního řetězce.
Prostorová složitost: O(1), protože nepoužíváme žádný další prostor

Zkontrolujte podřetězec Pythonu v řetězci pomocí metody operator.contains().

Tento přístup byl použitoperator.contains()metoda pro kontrolu, zda je podřetězec přítomen v řetězci Pokud je podmínka True print yes jinak 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'>)>

>

>

Výstup

Yes>

Časová náročnost: NA)
Pomocný prostor: O(1)

css první dítě