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)