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ě