Luyện tậpCâu hỏi 1. Thiết kế thuật toán cho nhiệm vụ 1 với ý tưởng khác như sau: Dãy A là một hoán...

Câu hỏi:

Luyện tập

Câu hỏi 1. Thiết kế thuật toán cho nhiệm vụ 1 với ý tưởng khác như sau: Dãy A là một hoán vị của dãy các số từ 1 đến n khi và chỉ khi dãy A có độ dài n và mọi số i từ 1 đến n đều nằm trong A.

Câu trả lời:
Người trả lời: GV. Đỗ Thị Linh
Câu trả lời chi tiết hơn:

Một cách khác để kiểm tra xem dãy n số có phải là một hoán vị của dãy số từ 1 đến n hay không là sử dụng hàm set để kiểm tra tính duy nhất của các số trong dãy. Sau đó, duyệt qua dãy số và kiểm tra xem dãy số đó có phải là dãy số từ 1 đến n hay không.

Sau khi kiểm tra tính duy nhất của các số trong dãy, ta chỉ cần kiểm tra xem tất cả các số từ 1 đến n đã xuất hiện trong dãy hay chưa. Nếu đã xuất hiện đủ tất cả các số từ 1 đến n thì ta có thể kết luận là đó là một hoán vị của dãy số từ 1 đến n.

Dưới đây là một cách làm bằng cách sử dụng hàm set để kiểm tra tính duy nhất của các số và sau đó kiểm tra xem tất cả các số từ 1 đến n đã xuất hiện trong dãy hay chưa:

```python
def kiemTraHoanVi(a):
n = len(a)
a_set = set(a)

if n != len(a_set):
return "KHÔNG"

for i in range(1, n+1):
if i not in a_set:
return "KHÔNG"

return "CÓ"
```

Thuật toán trên sẽ đảm bảo tính duy nhất của các số trong dãy và kiểm tra xem dãy có chứa đủ các số từ 1 đến n hay không. Nếu đủ thì trả về "CÓ", ngược lại trả về "KHÔNG".
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.06825 sec| 2244.586 kb