logo

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 metodyin>operator. Thein>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!'>)>

>

jak odkryć ukryte aplikacje
>

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

>

>

np.random.rand

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




dziedziczenie w Javie
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))>

>

>

strony takie jak coomeet

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ścieoperator.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)