O(n3n
লুপের মাধ্যমে string1এবং string2, যে চরিত্র চেক জন্য কত ঘন ঘন এটা খুঁজে পাওয়া যেতে পারে string1এবং string2। আমি একটি চরিত্র অন্য স্ট্রিংয়ের তুলনায় এক স্ট্রিংয়ের সাথে প্রায়শই আছি, এটি কোনও ক্রমশক্তি নয়। যদি সমস্ত অক্ষরের ফ্রিকোয়েন্সি সমান হয় তবে স্ট্রিংগুলি একে অপরের ক্রমান্বয়।
এই সুনির্দিষ্ট করার জন্য এখানে অজগরটির একটি টুকরো দেওয়া হয়েছে
s1="abcaba"
s2="aadbba"
def check_if_permutations(string1, string2):
for string in [string1, string2]:
# string references string1
# string2, it is not a copy
for char in string:
count1=0
for char1 in string1:
if char==char1:
count1+=1
count2=0
for char2 in string2:
if char==char2:
count2+=1
if count1!=count2:
print('unbalanced character',char)
return()
print ("permutations")
return()
check_if_permutations(s1,s2)
stringstring1string2charchar1char2O(logn)count1count2string[string1, string2]
অবশ্যই আপনার এমনকি কাউন্ট ভেরিয়েবলের প্রয়োজন নেই তবে পয়েন্টার ব্যবহার করতে পারেন।
s1="abcaba"
s2="aadbba"
def check_if_permutations(string1, string2):
for string in [string1, string2]:
# string references one of string1
# or string2, it is not a copy
for char in string:
# p1 and p2 should be views as pointers
p1=0
p2=0
while (p1<len(string1)) and (p2<len(string2)):
# p1>=len(string1): p1 points to beyond end of string
while (p1<len(string1)) and (string1[p1]!=char) :
p1+=1
while(p2<len(string2)) and (string2[p2]!=char):
p2+=1
if (p1<len(string1)) != (p2<len(string2)):
print('unbalanced character',char)
return()
p1+=1
p2+=1
print ("permutations")
return()
check_if_permutations(s1,s2)
O(log(n))
n