Trong bài viết này, chúng ta sẽ học về giải pháp và phương pháp giải quyết bài toán cho trước.
Đề bài
Cho một chuỗi đầu vào, chúng ta cần tìm xem chuỗi có chứa tất cả ký tự duy nhất hay không.
Phương pháp
- Chúng ta sẽ tạo một mảng các giá trị boolean, nơi biến flag tại chỉ số i cho biết ký tự i trong bảng chữ cái có chứa trong chuỗi hay không.
- Lần thứ hai chúng ta gặp ký tự này, chúng ta có thể trả về false ngay lập tức vì ký tự chuỗi không còn duy nhất.
- Chúng ta cũng có thể trả về false nếu độ dài chuỗi vượt quá giá trị số ký tự duy nhất có trong bảng chữ cái.
Ở đây chúng ta cố định kích thước chuỗi tối đa 256.
Bây giờ hãy xem triển khai:
Ví dụ
def isUniqueChars(st):
if len(st) > 256:
return False
# Khởi tạo
char_set = [False] * 128
# trong char_set
for i in range(0, len(st)):
# Giá trị ASCII
val = ord(st[i])
if char_set[val]:
return False
char_set[val] = True
return True
# main
st = "tutorialspoint"
print(isUniqueChars(st))
Kết quả
False
Tất cả biến được khai báo trong khung toàn cục như hình dưới đây:

Kết luận
Trong bài viết này, chúng ta đã học về cách kiểm tra chuỗi có tất cả ký tự duy nhất.