이 기사에서는 다음 사항을 확인하는 방법에 대해 설명합니다. 파이썬 string에는 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 연산자 사용
- 사용하여 확인 분할() 메서드
- 사용 find() 메소드
- 사용 카운트() 메서드
- 사용 index() 메서드
- 목록 이해 사용
- 람다 함수 사용
- __contains__ 매직 클래스를 사용합니다.
- 슬라이싱 기능 사용
- 사용 정규 표현식
- 연산자 contain() 메소드 사용
확인하다 문자열의 Python 하위 문자열 If-Else를 사용하여
Python에서는 문자열의 Python 하위 문자열이 존재하는지 확인할 수 있습니다. 다른 경우라면 성명. if-else 문을 사용하면 조건이 참인지 거짓인지에 따라 다양한 코드 블록을 조건부로 실행할 수 있습니다.
파이썬3
# 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>
시간 복잡도: 에)
보조 공간 : 오(1)
다음을 사용하여 문자열에서 Python 하위 문자열 확인 연산자에서
Python에서는 다음을 사용하여 주어진 문자열에 하위 문자열이 있는지 쉽게 확인할 수 있습니다.in>운영자. 그만큼in>연산자는 시퀀스 내에 특정 값(하위 문자열)이 존재하는지 여부를 테스트하는 데 사용됩니다.
파이썬3
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!>
시간 복잡도: 에)
보조 공간 : 오(1)
Split() 메서드를 사용하여 문자열에서 Python 하위 문자열 확인
문자열에 Python 하위 문자열이 있는지 확인하는 중입니다. 나뉘다(). 먼저 주어진 문자열을 단어로 분할하고 변수 s에 저장한 다음 if 조건을 사용하여 주어진 문자열에 하위 문자열이 있는지 확인합니다.
파이썬3
# 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)
보조 공간 : 에)
Find() 메서드를 사용하여 문자열에서 Python 하위 문자열 확인
모든 단어를 반복적으로 확인할 수 있지만 Python은 내장된 함수를 제공합니다. 찾다() 문자열에 하위 문자열이 있는지 확인하는 작업은 한 줄로 수행됩니다. find() 함수는 찾을 수 없으면 -1을 반환하고, 그렇지 않으면 첫 번째 발생을 반환하므로 이 함수를 사용하면 이 문제를 해결할 수 있습니다.
파이썬3
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>
시간 복잡도: 에)
보조 공간 : 오(1)
Count() 메서드를 사용하여 문자열에서 Python 하위 문자열 확인
문자열에서 특정 하위 문자열의 발생 횟수를 계산한 다음 Python을 사용할 수도 있습니다. 세다() 방법. 하위 문자열을 찾을 수 없으면 yes가 인쇄되고, 그렇지 않으면 no가 인쇄됩니다.
파이썬3
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>
시간 복잡도: 에)
보조 공간 : 오(1)
Index() 메서드를 사용하여 문자열에서 Python 하위 문자열을 확인합니다.
그만큼 Index() 메서드 매개변수로 전달된 하위 문자열의 시작 인덱스를 반환합니다. 여기 하위 문자열 인덱스 16에 존재합니다.
파이썬3
any_string>=> 'Geeks for Geeks substring '> start>=> 0> end>=> 1000> print>(any_string.index(>'substring'>, start, end))> |
>
>
산출
16>
시간 복잡도: 에)
보조 공간 : 오(1)
문자열 u에서 Python 하위 문자열 확인 노래 목록 이해
다음을 사용하여 문자열의 Python 하위 문자열을 확인하려면 목록 이해 . 목록 이해를 사용하면 문자열의 하위 문자열을 확인하고 해당 하위 문자열이 단어에 존재하는지 확인하는 간결한 방법을 제공합니다.
파이썬3
s>=>'geeks for geeks'> s2>=>'geeks'> print>([>'yes'> if> s2>in> s>else> 'no'>])> |
>
>
산출
['Yes']>
시간 복잡도: 에)
보조 공간 : 오(1)
문자열에서 Python 하위 문자열 확인 람다 함수 사용
다음을 사용하여 문자열의 Python 하위 문자열을 확인하려면 람다 함수 . 람다 함수를 사용하면 문자열의 하위 문자열을 확인하고 해당 하위 문자열이 단어에 존재하는지 확인하는 간결한 방법을 제공합니다.
파이썬3
각도 cli 제거
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)
보조 공간 : 오(m)
__contains__ 매직 클래스를 사용하여 문자열에서 Python 하위 문자열을 확인하세요.
문자열에서 Python 하위 문자열을 확인하려면 __contains__()를 사용합니다. 이 방법은 해당 문자열이 다른 문자열에 존재하는지 여부를 확인하는 데 사용됩니다.
파이썬3
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.>
시간 복잡도: 에)
보조 공간 : 오(1)
문자열에서 Python 하위 문자열 확인 슬라이싱을 사용하여
슬라이싱을 사용하여 문자열의 Python 하위 문자열을 확인합니다. 이 구현에서는 루프를 사용하여 문자열에 있는 하위 문자열의 가능한 모든 시작 인덱스를 반복한 다음 다음을 사용합니다. 슬라이스 현재 하위 문자열을 하위 문자열 인수와 비교합니다. 현재 부분 문자열이 부분 문자열 인수와 일치하면 함수는 True를 반환하고 그렇지 않으면 False를 반환합니다.
파이썬3
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>
시간 복잡도: 오(n*m)
여기서 n은 문자열 인수의 길이이고 m은 하위 문자열 인수의 길이입니다. 이는 함수가 루프를 사용하여 문자열에 있는 하위 문자열의 가능한 모든 시작 인덱스를 반복한 다음 슬라이싱을 사용하여 현재 하위 문자열을 하위 문자열 인수와 비교하기 때문입니다. 최악의 경우 루프는 n-m+1회 반복되고 각 슬라이스 작업에는 O(m) 시간이 소요되므로 총 시간 복잡도는 O((n-m+1)m) = O(nm)이 됩니다. .
보조 공간 : 오(1)
정규 표현식을 사용하여 문자열에서 Python 하위 문자열 확인
Python에서는 다음을 사용하여 문자열의 Python 하위 문자열이 있는지 확인할 수 있습니다. 정규 표현식 . 정규식은 강력한 패턴 일치 기능을 제공하므로 하위 문자열 일치를 위한 복잡한 검색 패턴을 정의할 수 있습니다. 정규식을 사용하여 문자열의 하위 문자열을 확인하는 방법은 다음과 같습니다.
파이썬3
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() 메소드 사용
이 접근 방식이 사용됨연산자.포함()문자열에 하위 문자열이 있는지 확인하는 방법 조건이 True이면 yes를 인쇄하고 그렇지 않으면 no를 인쇄합니다.
파이썬3
#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>
시간 복잡도: 에)
보조 공간 : 오(1)