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

Kiểm tra thứ tự chữ hoa/chữ thường trong chuỗi (Python)

Bài toán: Cho chuỗi s chỉ chứa chữ cái. Kiểm tra xem thứ tự xuất hiện của chữ thường và chữ hoa (khi chuyển thường thành hoa) có giống nhau không.

Ví dụ

s = "piPpIePE":
Chữ thường: p, i, p, e → "pipe" → uppercase "PIPE"
Chữ hoa: P, I, P, E → "PIPE"
Giống nhau → True.

Triển khai Python

def solve(s):
    lower = ""
    upper = ""
    for ch in s:
        if 'A' <= ch <= 'Z':
            upper += ch
        else:
            lower += ch
    return lower.upper() == upper

# Test
print(solve("piPpIePE"))  # True
print(solve("aAbB"))      # True: lower="ab"→"AB", upper="AB"
print(solve("Ab"))        # False: lower="b"→"B", upper="A"

Kết quả

True

Giải thích

  • Tách chuỗi thành hai chuỗi con: chỉ chữ thường và chỉ chữ hoa (giữ thứ tự).
  • Chuyển chuỗi thường thành hoa, so sánh với chuỗi hoa.
  • Điều kiện: cùng multiset ký tự VÀ cùng thứ tự tương đối.
  • Độ phức tạp: O(n) thời gian, O(n) không gian.