Computer >> Máy Tính >  >> Lập trình >> Python

Tìm kiếm chuỗi con Anagram bằng Python

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm kiếm tất cả các ký tự đảo ngữ từ một chuỗi.

Xem một số ví dụ.

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

Hãy xem làm thế nào để viết mã. Làm theo các bước dưới đây để viết mã.

Thuật toán

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.

Kiểm tra mã nếu bạn cảm thấy khó viết.

Ví dụ

# 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}')

Đầu ra

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau.

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

Kết luận

Nếu bạn có nghi ngờ về hướng dẫn, hãy đề cập đến chúng trong phần bình luận.