Sprawdź, czy ciąg zawiera podciąg w Pythonie
W tym artykule dowiesz się, jak sprawdzić, czy a Pyton string zawiera inny ciąg lub podciąg w Pythonie. Biorąc pod uwagę dwa ciągi, sprawdź, czy w podanym ciągu znajduje się podciąg.
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.
Podciąg Pythona w String
Sprawdzanie podciągu jest jednym z najczęściej używanych zadań w Pythonie. Python używa wielu metod sprawdzania łańcucha zawierającego podciąg, np. find(), indeks(), count() itp. Najbardziej wydajną i szybką metodą jest użycie W operator używany jako operator porównania. Tutaj omówimy różne podejścia:
- Korzystanie z funkcji Jeśli-Else
- Używanie operatora In
- Sprawdzanie za pomocą metoda podziału().
- Za pomocą metoda find().
- Za pomocą metoda count().
- Za pomocą metoda indeksu().
- Używanie rozumienia list
- Korzystanie z funkcji lambda
- Używanie __contains__ magicznej klasy.
- Korzystanie z funkcji krojenia
- Za pomocą wyrażenia regularne
- użycie operatora zawiera metodę ().
Sprawdzać Podciąg Pythona w String za pomocą funkcji Jeśli-Else
W Pythonie możesz sprawdzić obecność podciągu Pythona w ciągu za pomocą Jeśli inaczej oświadczenie. Instrukcja if-else umożliwia warunkowe wykonanie różnych bloków kodu w zależności od tego, czy warunek jest prawdziwy, czy fałszywy.
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'> )> |
Wyjście
Yes! it is present in the string
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdzanie podciągu Pythona w ciągu za pomocą W Operatorze
W Pythonie możesz łatwo sprawdzić, czy w danym ciągu występuje podciąg, używając metody in> operator. The in> Operator służy do sprawdzania, czy w sekwencji istnieje określona wartość (podciąg).
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!'> )> |
Wyjście
Substring found! Substring not found!
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdzanie podciągu Pythona w ciągu za pomocą metody Split().
Sprawdzanie podciągu Pythona w ciągu znaków jest obecne lub nie jest używane podział(). Najpierw podziel podany ciąg na słowa i zapisz je w zmiennej s, a następnie za pomocą warunku if sprawdź, czy w podanym ciągu występuje podciąg, czy nie.
Python3
# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->pobieranie informacji od użytkownika> substring> => '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'> )> |
Wyjście
Yes
Złożoność czasowa: O(n + m)
Przestrzeń pomocnicza: NA)
Sprawdź podciąg Pythona w String za pomocą metody Find().
Możemy iteracyjnie sprawdzać każde słowo, ale Python udostępnia nam wbudowaną funkcję znajdować() który sprawdza, czy w ciągu znaków znajduje się podciąg, co odbywa się w jednej linii. Funkcja find() zwraca -1, jeśli nie została znaleziona, w przeciwnym razie zwraca pierwsze wystąpienie, więc za pomocą tej funkcji można rozwiązać ten problem.
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)> |
Wyjście
Yes
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdź podciąg Pythona w ciągu za pomocą metody Count().
Możesz także policzyć liczbę wystąpień określonego podciągu w ciągu znaków, a następnie możesz użyć Pythona liczyć() metoda. Jeśli podciąg nie zostanie znaleziony, zostanie wydrukowane tak, w przeciwnym razie zostanie wydrukowane nie.
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)> |
Wyjście
No
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdź podciąg Pythona w ciągu znaków, używając metody Index().
The Metoda indeksu(). zwraca indeks początkowy podciągu przekazanego jako parametr. Tutaj podciąg jest obecny na indeksie 16.
Python3
any_string> => 'Geeks for Geeks substring '> start> => 0> end> => 1000> print> (any_string.index(> 'substring'> , start, end))> |
Wyjście
16
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdź podciąg Pythona w String u śpiewać Rozumienie listy
Aby sprawdzić podciąg Pythona w ciągu znaków, użyj zrozumienie listy . Korzystanie ze rozumienia list zapewnia zwięzły sposób sprawdzania podciągu w ciągu i sprawdzania, czy istnieje on w którymkolwiek ze słów.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> print> ([> 'yes'> if> s2> in> s> else> 'no'> ])> |
Wyjście
['Yes']
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdź podciąg Pythona w String za pomocą funkcji Lambda
Aby sprawdzić podciąg Pythona w ciągu znaków, użyj funkcja lambda . Użycie funkcji lambda zapewnia zwięzły sposób sprawdzenia obecności podciągu w ciągu i ustalenia, czy istnieje on w którymkolwiek ze słów.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> x> => list> (> filter> (> lambda> x: (s2> in> s),s.split()))> print> ([> 'yes'> if> x> else> 'no'> ])> |
Wyjście
['Yes']
Złożoność czasowa: O(n + m)
Przestrzeń pomocnicza: O(m)
Sprawdź podciąg Pythona w String, używając magicznej klasy __contains__.
Aby sprawdzić podciąg Pythona w ciągu, używamy __contains__(). Ta metoda służy do sprawdzania, czy ciąg znaków występuje w innym ciągu, czy nie.
Python3
a> => [> 'Geeks-13'> ,> 'for-56'> ,> 'Geeks-78'> ,> 'xyz-46'> ]> for> i> in> a:> > if> i.__contains__(> 'Geeks'> ):> > print> (f> 'Yes! {i} is containing.'> )> |
Wyjście
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
Sprawdź podciąg Pythona w String za pomocą Krojenia
Sprawdź podciąg Pythona w ciągu za pomocą krojenia. Ta implementacja wykorzystuje pętlę do iteracji po każdym możliwym indeksie początkowym podłańcucha w ciągu, a następnie używa krajanie na plastry aby porównać bieżący podciąg z argumentem podciągu. Jeśli bieżący podciąg pasuje do argumentu podciągu, funkcja zwraca True, w przeciwnym razie zwraca 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))> |
Wyjście
True
Złożoność czasowa: O(n*m)
gdzie n jest długością argumentu w postaci ciągu znaków, a m jest długością argumentu podciągu. Dzieje się tak, ponieważ funkcja używa pętli do iteracji po każdym możliwym indeksie początkowym podciągu w ciągu, a następnie stosuje cięcie w celu porównania bieżącego podciągu z argumentem podciągu. W najgorszym przypadku pętla wykona n-m+1 razy, a każda operacja plastra zajmie O(m) czasu, co daje całkowitą złożoność czasową O((n-m+1)m) = O(nm) .
Przestrzeń pomocnicza: O(1)
Sprawdź podciąg Pythona w ciągu znaków, używając wyrażenia regularnego
W Pythonie możesz sprawdzić obecność podciągu Pythona w ciągu znaków, używając wyrażenia regularne . Wyrażenia regularne zapewniają zaawansowane możliwości dopasowywania wzorców, umożliwiając definiowanie złożonych wzorców wyszukiwania w celu dopasowywania podciągów. Oto, jak możesz używać wyrażeń regularnych do sprawdzania podciągu w ciągu.
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'> )> |
Wyjście
Yes! it is present in the string
Złożoność czasowa: O(n), gdzie n jest długością ciągu wejściowego.
Złożoność przestrzeni: O(1), ponieważ nie używamy żadnej dodatkowej przestrzeni
Sprawdź podciąg Pythona w String przy użyciu metody operator.contains().
Zastosowano to podejście operator.zawiera() metoda sprawdzająca, czy podciąg występuje w ciągu znaków. Jeśli warunek jest prawdziwy, wydrukuj tak, w przeciwnym razie wydrukuj nie
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'> )> |
Wyjście
Yes
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)