Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용한 Anagram 부분 문자열 검색

<시간/>

이 튜토리얼에서는 문자열에서 모든 아나그램을 검색하는 프로그램을 작성할 것입니다.

몇 가지 예를 참조하십시오.

Input:
anagram = "cat"
string = "tacghactcat"
Output:
Anagram at 0
Anagram at 5
Anagram at 7
Anagram at 8

코드를 작성하는 방법을 알아보겠습니다. 아래 단계에 따라 코드를 작성하세요.

알고리즘

1. Initialize two strings.
2. Create a function which returns whether two strings are anagram to each other or not.
3. Iterate through the main string in which we have to search for the anagrams.
   3.1. Check whether substring is an anagram or not using the function that we have defined.
      3.1.1. If True, print the starting index.

작성하기 어렵다면 코드를 살펴보세요.

예시

# importing collections to check for anagrams
import collections
# initializing two strings
anagram = 'cat'
string = 'tacghactcat'
# function to check for anagrams
def is_anagram(string):
   # checking for anagram
   if collections.Counter(anagram) == collections.Counter(string):
      # returning True if anagrams
      return True
   else:
      # returning False if not
      return False
# getting lengths of both strings
anagram_len = len(anagram)
string_len = len(string)
# iterarint through the string
for i in range(string_len - anagram_len + 1):
   # checking for anagram
   if is_anagram(string[i:i+anagram_len]):
      # printing the index
      print(f'Anagram at {i}')

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Anagram at 0
Anagram at 5
Anagram at 7
Anagram at 8

결론

튜토리얼과 관련하여 의심스러운 점이 있으면 댓글 섹션에 언급하세요.