Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 16
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    0

    giúp giải bài "đường đi tới số không"

    dấu ngoặc

    BT 3 : Xét xâu St bao gồm các ký tự ngoặc mở “(“ và ngoặc đóng “)” . Xâu St xác địng một cách đặt ngoặc đúng, ếu thoả mãn các điều kiện sau:
    - Số ngoặc “(“ = số “)”;
    - Nếu duyệt từ trái sang phải, số lượng ngoặc “(“ luôn luôn lớn hơn hoặc bằng số lượng ngoặc “)“.
    Ví dụ: xâu: ‘( ( ( ) ( ( ) ) ) )’ xác địng một cách đặt ngoặc đúng. Còn xâu ‘( ( ) ( ) ) ) ( ( ) )’ là xác địng một cách đặt ngoặc sai ở vị trí thứ 7
    Hãy viết đoạn chương trình kiểm tra xem xâu St có xác địng một cách đặt ngoặc đúng hay không?

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    1
    cho biến kiểu số nguyên.
    đầu tiên cho a=0. sau đó duyệt từ đầu chuỗi, nếu gặp "(" thì inc(a) gặp ngoặc ")" thì dec(a). bất kì lúc nào a<0 thì sai. kết thúc chuỗi a>= 0 là đúng.

  3. #3
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Trích dẫn Gửi bởi titi_994
    cho biến kiểu số nguyên.
    đầu tiên cho a=0. sau đó duyệt từ đầu chuỗi, nếu gặp "(" thì inc(a) gặp ngoặc ")" thì dec(a). bất kì lúc nào a<0 thì sai. kết thúc chuỗi a>= 0 là đúng.
    Kết thúc chuỗi a=0 mới đúng chứ [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Cách khác: dùng pos để tìm vị trí của '()' trong xâu, del nó rồi lại pos, lại del. Tới khi không del được nữa, nếu xâu còn lại là rỗng thì là đúng, không là sai.

  4. #4
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Ginta_ITFam
    Kết thúc chuỗi a=0 mới đúng chứ [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Cách khác: dùng pos để tìm vị trí của '()' trong xâu, del nó rồi lại pos, lại del. Tới khi không del được nữa, nếu xâu còn lại là rỗng thì là đúng, không là sai.
    Còn điều kiện là số lượng ngoặc "(" từ trái sang phải lớn hơn số lượng ngoặc ")" nữa [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    6
    Trích dẫn Gửi bởi sangpronhat
    Còn điều kiện là số lượng ngoặc "(" từ trái sang phải lớn hơn số lượng ngoặc ")" nữa [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    dùng stack như vậy tức là đã xét đk đó rồi. cuối cùng stack rỗng là xâu đúng.
    nếu duyệt từ trái sang phải mà số lượng "(" lớn hơn ")" thì mới tìm đc vt của () và del hết.
    vd: ')()(()' có "(" = ")" nhưng duyệt từ trái sáng phải ")" > "(" --> sai vì sau cùng nó còn lại là ')('
    @Ginta_ITFam: mình nhầm tí.hjhj[IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    1
    Chày ý tui nói là cái dòng
    Kết thúc chuỗi a=0 mới đúng chứ
    Đối với CODE của pác titi_994 nếu a=0 thì bỏ hết 1 dk đó :|

  7. #7
    Ngày tham gia
    Mar 2016
    Bài viết
    2
    Trích dẫn Gửi bởi sangpronhat
    Chày ý tui nói là cái dòng

    Đối với CODE của pác titi_994 nếu a=0 thì bỏ hết 1 dk đó :|
    đk gì hả pạn? ở đây chỉ có 2 đk thôi.
    xét đk 1 thì a phải bằng 0 rồi.
    còn đk 2 chính là bất kì lúc nào a<0 thì dừng và thông báo xâu sai đó.

  8. #8
    Ngày tham gia
    Aug 2015
    Bài viết
    5
    Àh thì ra là thế [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]) hiểu gòi mứi đọc xong tưởng nó có 2 cái dk để ngoặc đúng là số ngoặc (=) hoặc ( > ) SRR

  9. #9
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Trích dẫn Gửi bởi sangpronhat
    Còn điều kiện là số lượng ngoặc "(" từ trái sang phải lớn hơn số lượng ngoặc ")" nữa [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Bạn phải hiểu rõ thuật toán của người khác thì mới đưa ra nhận xét được bạn nhé [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]
    Với cách của mình, cứ xóa đi như thế, nếu số ngoặc ( nhỏ hơn số ngoặc ) từ phải sang, thì lúc cuối cùng, xâu còn lại không phải là rỗng, đồng thời đảm bảo luôn điều kiện số lượng ( và ) phải bằng nhau.

  10. #10
    Ngày tham gia
    Nov 2015
    Bài viết
    8
    Mình hiểu rồi cảm ơn bạn _ _! Àhh bạn có nhiều giáo trình về Pascal ko cho mình xin để nghiên cứu sâu hơn [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •