Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra hai nửa chuỗi có ít nhất một ký tự khác nhau trong Python

Cho chuỗi chữ thường. Kiểm tra xem có thể chia chuỗi thành hai nửa (bỏ qua ký tự giữa nếu độ dài lẻ) sao cho hai nửa có ít nhất một ký tự khác nhau (khác ký tự hoặc khác tần suất).

Ví dụ: "helloohekk" → nửa trái "hello", nửa phải "ohekk" → khác nhau → True.

Giải thuật

  • Đếm tần suất ký tự cho nửa trái (0 đến n//2 - 1) và nửa phải (n//2 đến n-1).
  • So sánh tần suất từng ký tự. Nếu có bất kỳ ký tự nào tần suất khác nhau → True.

Mã ví dụ

from collections import defaultdict

def solve(s):
    left_freq = defaultdict(int)
    right_freq = defaultdict(int)
    n = len(s)
    for i in range(n//2):
        left_freq[s[i]] += 1
    for i in range(n//2, n):
        right_freq[s[i]] += 1
    for char in s:
        if right_freq[char] != left_freq[char]:
            return True
    return False

s = "helloohekk"
print(solve(s))

Đầu vào

"helloohekk"

Đầu ra

True