Перевірте, чи рядок містить підрядок у Python
У цій статті буде описано, як перевірити, чи a Python рядок містить інший рядок або підрядок у Python. Дано два рядки, перевірте, чи є підрядок у заданому рядку.
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.
Підрядок Python у рядку
Перевірка підрядка є одним із найпоширеніших завдань у Python. Python використовує багато методів для перевірки рядка, що містить підрядок, як-от find(), index(), count() тощо. Найбільш ефективним і швидким методом є використання в оператор, який використовується як оператор порівняння. Тут ми розглянемо різні підходи:
- Використання функції If-Else
- Використання оператора In
- Перевірка за допомогою метод split().
- Використання метод find().
- Використання метод count().
- Використання метод index().
- Використання розуміння списку
- Використання лямбда-функції
- Використання магічного класу __contains__.
- Використання функції нарізки
- Використання регулярні вирази
- використання методу оператора contains().
Перевірте Підрядок Python у рядку за допомогою If-Else
У Python ви можете перевірити наявність підрядка python у рядку за допомогою an якщо-інакше заява. Інструкція if-else дозволяє умовно виконувати різні блоки коду залежно від того, чи є умова істинною чи хибною.
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'> )> |
Вихід
Yes! it is present in the string
Часова складність: O(n)
Допоміжний простір: О(1)
Перевірка підрядка Python у рядку за допомогою В Оператор
У Python ви можете легко перевірити, чи присутній підрядок у даному рядку, використовуючи in> оператор. The in> використовується для перевірки наявності певного значення (підрядка) у послідовності.
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!'> )> |
Вихід
Substring found! Substring not found!
Часова складність: O(n)
Допоміжний простір: О(1)
Перевірка підрядка Python у рядку за допомогою методу Split().
Перевірка підрядка Python у рядку присутній чи не використовується split(). Спочатку розділіть даний рядок на слова та збережіть їх у змінній s, а потім за допомогою умови if перевірте, чи присутній підрядок у даному рядку чи ні.
Python3
# input strings str1 and substr> string> => 'geeks for geeks'> # or string=input() ->отримання інформації від користувача> 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'> )> |
Вихід
Yes
Часова складність: O(n + m)
Допоміжний простір: O(n)
Перевірте підрядок Python у рядку за допомогою методу Find().
Ми можемо періодично перевіряти кожне слово, але Python надає нам вбудовану функцію знайти() який перевіряє наявність підрядка в рядку, що виконується в одному рядку. Функція find() повертає -1, якщо не знайдено, інакше вона повертає перше входження, тому за допомогою цієї функції цю проблему можна вирішити.
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)> |
Вихід
Yes
Часова складність: O(N)
Допоміжний простір: О(1)
Перевірте підрядок Python у рядку за допомогою методу Count().
Ви також можете підрахувати кількість входжень певного підрядка в рядку, тоді ви можете використовувати Python рахувати() метод. Якщо підрядок не знайдено, буде надруковано «так», інакше буде надруковано «ні».
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)> |
Вихід
No
Часова складність: O(N)
Допоміжний простір: О(1)
Перевірте підрядок Python у рядку за допомогою методу Index().
The Метод Index(). повертає початковий індекс підрядка, переданого як параметр. тут підрядок присутній під індексом 16.
Python3
any_string> => 'Geeks for Geeks substring '> start> => 0> end> => 1000> print> (any_string.index(> 'substring'> , start, end))> |
Вихід
16
Часова складність: O(N)
Допоміжний простір: О(1)
Перевірте підрядок Python у рядку u співати Розуміння списку
Щоб перевірити підрядок Python у рядку за допомогою розуміння списку . Використання розуміння списку забезпечує стислий спосіб перевірити наявність підрядка в рядку та визначити, чи існує він у будь-якому зі слів.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> print> ([> 'yes'> if> s2> in> s> else> 'no'> ])> |
Вихід
['Yes']
Часова складність: O(N)
Допоміжний простір: О(1)
Перевірте підрядок Python у рядку за допомогою функції Лямбда
Щоб перевірити підрядок Python у рядку за допомогою лямбда-функція . Використання лямбда-функції забезпечує стислий спосіб перевірити наявність підрядка в рядку та визначити, чи існує він у будь-якому зі слів.
Python3
s> => 'geeks for geeks'> s2> => 'geeks'> x> => list> (> filter> (> lambda> x: (s2> in> s),s.split()))> print> ([> 'yes'> if> x> else> 'no'> ])> |
Вихід
['Yes']
Часова складність: O(n + m)
Допоміжний простір: О(м)
Перевірте підрядок Python у рядку за допомогою магічного класу __contains__.
Щоб перевірити підрядок python у рядку, ми використовуємо __contains__(). Цей метод використовується для перевірки наявності рядка в іншому рядку чи ні.
Python3
a> => [> 'Geeks-13'> ,> 'for-56'> ,> 'Geeks-78'> ,> 'xyz-46'> ]> for> i> in> a:> > if> i.__contains__(> 'Geeks'> ):> > print> (f> 'Yes! {i} is containing.'> )> |
Вихід
Yes! Geeks-13 is containing. Yes! Geeks-78 is containing.
Часова складність: O(N)
Допоміжний простір: О(1)
Перевірте підрядок Python у рядку за допомогою нарізки
Перевірте підрядок python у рядку за допомогою нарізки. Ця реалізація використовує цикл для перебору кожного можливого початкового індексу підрядка в рядку, а потім використовує нарізка щоб порівняти поточний підрядок з аргументом підрядка. Якщо поточний підрядок збігається з аргументом підрядка, функція повертає True, інакше повертає 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))> |
Вихід
True
Часова складність: O(n*m)
де n — довжина аргументу рядка, а m — довжина аргументу підрядка. Це пов’язано з тим, що функція використовує цикл для перебору кожного можливого початкового індексу підрядка в рядку, а потім використовує зріз для порівняння поточного підрядка з аргументом підрядка. У гіршому випадку цикл повторюватиметься n-m+1 разів, і кожна операція зрізу займатиме O(m) часу, в результаті чого загальна часова складність буде O((n-m+1)m) = O(nm) .
Допоміжний простір: О(1)
Перевірте підрядок Python у рядку за допомогою регулярного виразу
У Python ви можете перевірити наявність підрядка python у рядку за допомогою регулярні вирази . Регулярні вирази надають потужні можливості зіставлення шаблонів, дозволяючи визначати складні шаблони пошуку для зіставлення підрядків. Ось як ви можете використовувати регулярні вирази для перевірки підрядка в рядку.
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'> )> |
Вихід
Yes! it is present in the string
Часова складність: O(n), де n - довжина вхідного рядка.
Космічна складність: O(1), оскільки ми не використовуємо жодного додаткового місця
Перевірте підрядок Python у рядку за допомогою методу operator.contains().
Використовується цей підхід operator.contains() метод для перевірки наявності підрядка в рядку. Якщо умова має значення True, друкуйте так, інакше друкуйте ні
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'> )> |
Вихід
Yes
Часова складність: O(N)
Допоміжний простір: О(1)