Chúng ta có thể tách một chuỗi dài từ giữa và kiểm tra xem hai nửa có bằng nhau hay không. Chuỗi đầu vào có thể có số ký tự lẻ hoặc chẵn. Nếu nó có số ký tự chẵn, chúng ta chia hai nửa bằng cách lấy một nửa độ dài. Nhưng nếu số ký tự là lẻ, chúng ta bỏ qua ký tự ở giữa và so sánh hai nửa còn lại.
Trong chương trình dưới đây, chúng ta tạo hai nửa của chuỗi đầu vào với logic trên và sau đó so sánh.
Ví dụ
from collections import Counter
def comparehalves(input_string):
str_len = len(input_string)
# Nếu số ký tự là lẻ, bỏ qua ký tự giữa
if (str_len % 2 != 0):
left = input_string[0:int(str_len / 2)]
right = input_string[(int(str_len / 2)) + 1:]
else:
left = input_string[0:int(str_len / 2)]
right = input_string[int(str_len / 2):]
# Chuyển nửa thành list và sắp xếp
l1 = list(left)
l1.sort()
l2 = list(right)
l2.sort()
if l1 == l2:
print("Same character in both halves")
else:
print("Both halves are different")
in_string = input("Enter String: ")
comparehalves(in_string)
Kết quả
Chạy mã trên cho kết quả sau:
# Run1 Enter String: Tutorials Both halves are different # Run2 Enter String: TutTut Same character in both halves