Hướng dẫn anagram program in python using for loop - chương trình đảo chữ trong python sử dụng vòng lặp for

Bài viết này được tạo để bao gồm một số chương trình trong Python, nhận được hai chuỗi của người dùng vào thời gian chạy và kiểm tra xem hai chuỗi có phải là ANAGRAM hay không. Dưới đây là danh sách các chương trình:

  • Kiểm tra hai chuỗi là đảo chữ hoặc không sử dụng cho vòng lặp mà không cần sắp xếp chuỗifor loop, without sorting the string
  • Sử dụng hàm sort ()sorted() Function
  • Sử dụng chức năng do người dùng xác định
  • Sử dụng lớp học

Trước khi tạo các chương trình này, trước tiên chúng ta hãy hiểu về Anagram.

Chuỗi anagram là gì?

Hai chuỗi có thể được gọi là ANAGRAM, khi:

  • Cả hai đều chứa cùng một số ký tự
  • thứ tự của các nhân vật không quan trọng
  • Một chuỗi có thể được sắp xếp lại để tạo thành chuỗi khác

Ví dụ, ABC và CBA là hai chuỗi đảo chữ. Tương tự, sáng tạo và phản ứng cũng là đảo chữ. Đó là, các nhân vật sáng tạo có thể được sắp xếp lại để hình thành phản ứng và ngược lại.abc and cba are two anagram strings. Similarly, creative and reactive are also anagram. That is, characters of creative can be rearranged to form reactive and vice-versa.

Kiểm tra hai chuỗi là cách sử dụng cho vòng lặp

Chương trình này được tạo bằng cách sử dụng vòng lặp để kiểm tra xem hai chuỗi được nhập bởi người dùng có bị đối nghịch hay không. Câu hỏi là, viết một chương trình Python để kiểm tra ANAGram hay không mà không sắp xếp chuỗi. Đây là câu trả lời của nó:for loop to check whether the two strings entered by user are anagram or not. The question is, write a Python program to check Anagram or not without sorting the string. Here is its answer:

print("Enter the First String:")
textOne = str(input())
print("Enter the Second String:")
textTwo = str(input())
found=0
notFound=0
lenOne = len(textOne)
lenTwo = len(textTwo)
if lenOne == lenTwo:
    for i in range(lenOne):
        found = 0
        for j in range(lenOne):
            if textOne[i] == textTwo[j]:
                found = 1
                break
        if found==0:
            notFound = 1
            break
    if notFound==1:
        print("\nStrings are Not Anagram")
    else:
        print("\nStrings are Anagram")
else:
    print("\nLength of Strings are not Equal")

Đây là mẫu chạy mẫu của nó:

Hướng dẫn anagram program in python using for loop - chương trình đảo chữ trong python sử dụng vòng lặp for

Bây giờ cung cấp hai chuỗi đầu vào nói hãy lắng nghe đầu tiên và im lặng dưới dạng chuỗi thứ hai và nhấn phím ENTER để kiểm tra và in xem hai chuỗi này có phải là đảo chữ hay không như thể hiện trong ảnh chụp nhanh được đưa ra dưới đây:listen as first and silent as second string and press ENTER key to check and print whether these two strings are anagram or not as shown in the snapshot given below:

Dưới đây là một mẫu chạy khác với người dùng đầu vào nghe và silenx là chuỗi thứ nhất và thứ hai:listen and silenx as first and second string:

Và đây là lần chạy mẫu thứ ba với mã đầu vào của người dùng và cracker là chuỗi thứ nhất và thứ hai:codes and cracker as first and second string:

Lưu ý - Phương thức str () được sử dụng để chuyển đổi bất kỳ loại giá trị nào thành loại chuỗi. Và phương thức Len () trả về độ dài của chuỗi được truyền dưới dạng đối số của nó.The str() method is used to convert any type of value to a string type. And len() method returns length of string passed as its argument.

Việc chạy khô của chương trình ở trên với người dùng đầu vào nghe và im lặng, đi như:listen and silent, goes like:

  • Các giá trị ban đầu, TEXTONE = Nghe (được nhập bởi người dùng), TextTwo = im lặng (được nhập bởi người dùng), đã tìm thấy = 0, notfound = 0textOne = listen (entered by user), textTwo = silent (entered by user), found = 0, notFound = 0
  • Bây giờ sử dụng phương thức Len (), độ dài của chuỗi thứ nhất và thứ hai được khởi tạo thành các biến lenone và lentwo. Vì vậy, lenone = 6 và lentwo = 6len() method, the length of first and second string gets initialized to lenOne and lenTwo variables. So lenOne=6 and lenTwo=6
  • Vì điều kiện (của nếu) lenone == lentwo hoặc 6 == 6 đánh giá là đúng, do đó luồng chương trình đi vào bên trong cơ thể nếu cơ thể nàyif) lenOne == lenTwo or 6 == 6 evaluates to be true, therefore program flow goes inside this if's body
  • Phạm vi () trả về một chuỗi các giá trị, bắt đầu bằng 0 và tăng thêm 1 mỗi lần, theo mặc định. Tiếp tục cho đến khi Lenone-1, vì Lenone cung cấp như đối số của nórange() returns a sequence of values, starting with 0 and increments by 1 each time, by default. Continues until lenOne-1, since lenOne provided as its argument
  • Do đó, lần đầu thực thi, giá trị của tôi là 0, vì vậy tôii's value is 0, so i or 0<6 evaluates to be true, therefore program flow goes inside this for loop's body
  • Và 0 được khởi tạo để tìm thấy. Bây giờ có một vòng khác được thực thi0 gets initialized to found. Now there is another for loop that gets executed
  • Vì vậy, J = 0 và vì 0 nhỏ hơn giá trị của Lenone, do đó, điều kiện đánh giá là đúng và luồng chương trình đi vào bên trong cơ thể của vòng lặp nàyj=0 and since 0 is less than lenOne's value, therefore the condition evaluates to be true, and program flow goes inside this for loop's body
  • Bên trong vòng lặp này, tôi đã so sánh ký tự ở chỉ mục hiện tại của chuỗi thứ nhất với tất cả các ký tự của chuỗi thứ hai. Đó là, nếu ký tự của chuỗi thứ nhất được kết hợp với bất kỳ ký tự nào của chuỗi thứ hai, thì 1 sẽ được lưu trữ để tìm và sử dụng từ khóa Break, việc thực hiện lại cho vòng lặp này sẽ bị bỏ qua1 gets stored to found and using break keyword, remaining execution of this for loop gets skipped
  • Và sử dụng điều kiện tìm thấy == 0, chúng tôi đã kiểm tra xem luồng chương trình có đi vào bên trong cơ thể nếu có hay không. Nghĩa là, nếu điều kiện nếu trước đó đánh giá là đúng, thì chúng ta đã tiếp tục, nếu không, sẽ khởi tạo 1 thành không phát hiện và sử dụng từ khóa Break, bỏ qua việc thực hiện còn lại bên ngoài cho vòng lặpfound==0 condition, we've checked whether program flow goes inside previous if's body or not. That is, if previous if's condition evaluates to be true, then we've to continue, otherwise, initialize 1 to notFound and using break keyword, skip remaining execution of outer for loop
  • Theo cách này, tôi đã so sánh tính cách theo cách tính cách và đã kiểm tra xem hai chuỗi được nhập bởi người dùng có bị đối tượng hay không
  • Vì mỗi ký tự của chuỗi thứ nhất đều có sẵn trong chuỗi thứ hai, do đó luồng chương trình không bao giờ đi vào bên trong phần thân nếu điều kiện được tìm thấy == 0. Để 1 không bao giờ được khởi tạo thành biến không phát hiện. Và điều kiện không phát hiện được == 1 không đánh giá là đúng, do đó tuyên bố khác được thực thiif whose condition is found==0. So that 1 never gets initialized to notFound variable. And the condition notFound==1 doesn't evaluates to be true, therefore else's statement gets executed
  • Chuỗi in là ANAGRAMStrings are Anagram

Phiên bản sửa đổi của chương trình trước

Chương trình này sử dụng phương thức Sắp xếp () để sắp xếp chuỗi và so sánh các chuỗi theo ký tự theo cách ký tự, để kiểm tra xem hai chuỗi có phải là đảo chữ hay không. End = được sử dụng để bỏ qua việc chèn một dòng mới tự động bằng print ()sorted() method to sort the string and compares strings in character by character manner, to check whether two strings are anagram or not. The end= is used to skip inserting an automatic newline using print()

print(end="Enter the First String: ")
textOne = str(input())
print(end="Enter the Second String: ")
textTwo = str(input())
lenOne = len(textOne)
lenTwo = len(textTwo)
notFound=0
if lenOne == lenTwo:
    textOne = sorted(textOne)
    textTwo = sorted(textTwo)
    for i in range(lenOne):
        if textOne[i] != textTwo[i]:
            notFound=1
            break
    if notFound==0:
        print("\nStrings are Anagram")
    else:
        print("\nStrings are Not Anagram")
else:
    print("\nLength of Strings are not Equal")

Dưới đây là chạy mẫu của nó với người dùng đầu vào sáng tạo và phản ứng như hai chuỗi:creative and reactive as two strings:

Kiểm tra chuỗi anagram bằng cách sắp xếp ()

Chương trình này sử dụng phương thức Sắp xếp () để thực hiện cùng một công việc như chương trình trước đó. Hai chuỗi được nhập bởi người dùng được so sánh trực tiếp bằng toán tử ==.sorted() method to do the same job as previous program does. The two strings entered by user gets compared directly using == operator.

print("Enter First String: ", end="")
textOne = str(input())
print("Enter Second String: ", end="")
textTwo = str(input())

lenOne = len(textOne)
lenTwo = len(textTwo)

if lenOne == lenTwo:
    if sorted(textOne) == sorted(textTwo):
        print("\nStrings are Anagram")
    else:
        print("\nStrings are Not Anagram")
else:
    print("\nLength of Strings are not Equal")

Dưới đây là mẫu chạy mẫu của nó với người dùng đầu vào Sadder và Dreads:sadder and dreads:

Kiểm tra chuỗi anagram bằng chức năng

Chương trình này được tạo bằng hàm do người dùng xác định có tên là Checkanag (). Hàm nhận được hai chuỗi dưới dạng đối số của nó và trả về 1 nếu cả hai chuỗi là ANAGRAM.CheckAnag(). The function receives two strings as its argument and returns 1 if both strings are anagram.

def CheckAnag(sOne, sTwo):
    if sorted(sOne) == sorted(sTwo):
        return 1

print("Enter First String: ", end="")
textOne = str(input())
print("Enter Second String: ", end="")
textTwo = str(input())

rVal = CheckAnag(textOne, textTwo)
if rVal==1:
        print("\nStrings are Anagram")
else:
    print("\nStrings are Not Anagram")

Kiểm tra chuỗi anagram bằng lớp

Đây là chương trình cuối cùng được tạo bằng lớp, một tính năng hướng đối tượng của Python. Để truy cập chức năng thành viên của một lớp, một đối tượng được yêu cầu. Do đó, một đối tượng có tên OBJ được tạo từ CodeScracker lớp để truy cập vào hàm thành viên của nó có tên Checkanag () bằng toán tử DOT (.).obj is created of class CodesCracker to access its member function named CheckAnag() using dot (.) operator.

class CodesCracker:
    def CheckAnag(self, sOne, sTwo):
        if sorted(sOne) == sorted(sTwo):
            return 1

print("Enter First String: ", end="")
textOne = str(input())
print("Enter Second String: ", end="")
textTwo = str(input())

obj = CodesCracker()
rVal = obj.CheckAnag(textOne, textTwo)

if rVal==1:
        print("\nStrings are Anagram")
else:
    print("\nStrings are Not Anagram")

Thử nghiệm trực tuyến Python


«Chương trình chương trình trước đây» Next Program »



Làm thế nào để bạn thực hiện một chương trình ANAGRAM trong Python?

Thí dụ -..
def Anogram_check (str1, str2):.
# Chuỗi được sắp xếp và kiểm tra xem cả hai có khớp hay không ..
if (Sắp xếp (str1) == Sắp xếp (str2)):.
In ("Cả hai chuỗi là một đảo chữ.").
In ("Cả hai chuỗi không phải là một đối thủ.").
String1 = "Python".
String2 = "ythopn".

Làm thế nào để bạn tìm thấy đảo chữ của một câu trong Python?

Lower () # Kiểm tra độ dài nếu giống nhau nếu (len (str1) == len (str2)): # Sắp xếp các chuỗi sort_str1 = sort (str1) sort_str2 = sort (str2) # nếu mảng char được sắp xếp giống nhau nếu (sort_str1 = = sort_str2): in (str1 + "và" + str2 + "là ANAGRAM.") # check if length is same if(len(str1) == len(str2)): # sort the strings sorted_str1 = sorted(str1) sorted_str2 = sorted(str2) # if sorted char arrays are same if(sorted_str1 == sorted_str2): print(str1 + " and " + str2 + " are anagram.") else: print(str1 + " and " + str2 + " are not anagram.") else: print(str1 ...

Ý nghĩa của Anagram trong Python là gì?

Một đảo chữ của một chuỗi là một chuỗi khác chứa cùng các ký tự, chỉ thứ tự của các ký tự có thể khác nhau.Ví dụ, ABCD, và Dab Dabc là những kẻ gây rối của nhau.Ví dụ: Đầu vào: str1 = Hồi ABCD, str2 = đầu ra của Dab Dabc: Đúng đầu vào: str1 = Hồi ABCF, str2 = đầu ra của KABC KABC: Sai.another string that contains same characters, only the order of characters can be different. For example, “abcd” and “dabc” are anagram of each other. Examples: Input : str1 = “abcd”, str2 = “dabc” Output : True Input : str1 = “abcf”, str2 = “kabc” Output : False.

Làm thế nào để bạn kiểm tra xem hai từ có phải là đảo chữ trong Python không?

Dưới đây là mã nguồn của chương trình Python để phát hiện nếu hai chuỗi là đảo chữ.Đầu ra chương trình cũng được hiển thị dưới đây.S1 = RAW_INPUT ("Nhập chuỗi đầu tiên:") S2 = RAW_INPUT ("Nhập chuỗi thứ hai:") if (Sắp xếp (S1) == Sắp xếp (S2)): In ("Các chuỗi là ANAGRAMS.")"Các chuỗi không phải là đối thủ.") 1.