HomeLập trình Scratch

Bài xâu đóng mở ngoặc – Đề thi tin học trẻ tỉnh Bắc Giang 2014

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Trong bài viết này mình sẽ cùng bàn về xâu đóng mở ngoặc trong đề thi tin học trẻ tỉnh Bắc Giang 2014. Theo mình thì đây là một bài toán không khó nhưng hay, chúng ta hãy cùng xem code hướng dẫn bằng Pascal nào:

Bài toán nói một cách khác là kiểm tra xem cách đóng mở ngoặc trong một xâu là đúng hay sai, một xâu có cách đóng mở ngoặc đúng nếu thỏa mãn hai yêu cầu sau đây:

  • Số lượng các ngoặc mở đúng bằng số ngoặc đóng;
  • Nếu tính từ trái sang phải, thì ở một vị trí bất kì số ngoặc mở luôn phải lớn hơn hoặc bằng số ngoặc đóng.

Sau đây là code minh họa viết bằng Pascal

code kiểm tra xâu đóng mở ngoặc đúng hay sai

Ở chương trình trên mình dùng biến “dung” kiểu dữ liệu đúng/sai để chứa kết quả kiểm tra, nếu sau khi chạy chương trình “dung” cho giá trị true thì xâu đóng mở ngoặc đúng quy tắc và ngược lại.

À trong bài có hai hàm inc(kt) tương đượng với lệnh kt:=kt+1 mà ta hay dùng. còn hàm dec(kt) là giảm biến kt đi 1 đơn vị.

Biến “kt” để tính hiệu số ngoặc mở và ngoặc đóng, tại mọi vị trí nếu “kt” mà âm thì báo sai và thoát chương trình. Xâu chỉ đúng khi “kt” luôn lớn hơn hoặc bằng 0 và cuối cùng “kt” phải bằng 0.

Thông thường thì khi mới làm các bạn thường dùng hai biến khác nhau để đếm số ngoặc mở và số ngoặc đóng, làm như vậy cũng được nhưng lãng phí mất một biến nhớ.

Bây giờ các bạn có thể kiểm tra chương trình được rồi đó, hãy test thử một số xâu sau xem đúng hay sai nào:

VD1: De thi tin hoc trẻ Bac Giang (hay và khó) -> xâu đóng mở ngoặc đúng

VD2: () () () -> Đúng

VD3: ((()) -> Sai

Bạn nào có code hay hơn xin comment chia sẻ để cùng học hỏi nào!

 

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *