एक स्ट्रिंग को देखते हुए, हमारा काम यह जांचना है कि स्ट्रिंग के दोनों हिस्सों में वर्णों का एक ही सेट है या नहीं। इस समस्या को हल करने के लिए हम पहले स्ट्रिंग को बीच से विभाजित करते हैं, इसलिए हमें दो हिस्से मिलते हैं, अब हम प्रत्येक हिस्सों की जांच करते हैं कि वर्णों का एक ही सेट है या नहीं। यदि स्ट्रिंग की लंबाई भी नहीं है, तो मध्य तत्व को अनदेखा करें और बाकी की जांच करें।
एल्गोरिदम
Step 1: Given a string. Step 2: Break the input string into two parts. Step 3: Then convert both parts into a dictionary using Counter(iterator) method and each dictionary contains its character as key and frequency as value. Step 4: Now compare these two dictionaries. Here we use == operator. First we checks keys of both dictionaries are same or not, then checks for values of each key. If both cases are true then two halves have the same set of characters.
उदाहरण कोड
from collections import Counter def checkhalves(input): length = len(input) if (length % 2 != 0): first = input[0:int(length / 2)] second = input[(int(length / 2)) + 1:] else: first = input[0:int(length / 2)] second = input[int(length / 2):] if Counter(first) == Counter(second): print ("Both halves are same") else: print ("Both halves are not same ") # Driver program if __name__ == "__main__": input = input("Enter The String") checkhalves(input)
आउटपुट
Enter The String abba Both halves are same