Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 11

Chủ đề: tìm xâu con

  1. #1
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts

    tìm xâu con

    xâu X là xâu đã được mã hóa theo cách tăng ord của mỗi kí tự trong xâu ban đầu chưa được mã hóa lên t đơn vị , t nằm trong khoảng -225..225.
    tìm xem trong xâu ban đầu X' chưa được mã hóa thì xâu Y có thể xuất hiện nhiều nhất bao nhiêu lần .

    inp:xâu X và Y
    out:số lần xuất hiện

    mọi người có thể cảm thấy khó hiểu ở đoạn không biết t thì làm sao giải mã rồi đếm được, giải thích như sau : có thể có nhiều t để xuất hiện xâu Y trong xâu X(nhiều trường hợp , với mỗi trường hợp thì số lần xuất hiện xâu Y trong xâu X là khác nhau) , ta cần đếm số lần xuất hiện nhiều nhất
    Quote Quote

  2. #2
    Tham gia
    05-06-2009
    Location
    Tuyên Quang
    Bài viết
    656
    Like
    0
    Thanked 4 Times in 3 Posts
    Hiểu rồi. Suy nghĩ đã
    ====================

  3. #3
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    ko ai giải àh , bài này hay mà ^^, thấy hay mà ko giải thì uổng quá, nên mình đào mồ nó lên :p

  4. #4
    Tham gia
    09-08-2007
    Bài viết
    17
    Like
    0
    Thanked 0 Times in 0 Posts
    Bài này bạn sử dụng một vòng lặp t cho chạy từ 0 đến 255 (thực chất mấy số âm cũng ra những trường hợp này thôi), mã hoá xâu Y thành xâu Y', sau đó đếm số lần xuất hiện sâu Y' trong X' => số lần xuất hiện của Y trong X (mã hoá Y sẽ tiết kiệm hơn giải mã X). Tìm max của các lần xuất hiện đó thôi ^^

  5. #5
    Tham gia
    05-06-2009
    Location
    Tuyên Quang
    Bài viết
    656
    Like
    0
    Thanked 4 Times in 3 Posts
    Ặc. Nếu độ dài xâu mà lớn thì vét thế đến bao giờ.
    Cực lâu

  6. #6
    Tham gia
    01-08-2008
    Location
    Hà Nội - HUS
    Bài viết
    142
    Like
    0
    Thanked 0 Times in 0 Posts
    Có thể dùng thêm thuật toán KMP . Giảm độ phức tạp thành 256*(M+N) (M và N là độ dài xâu X và Y)

  7. #7
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    thuật toán KMPlà thuật toán gì vậy a ?
    bài này e giải theo kiểu tính độ chênh lệch của ord các kí tự trong xâu

  8. #8
    Tham gia
    07-12-2008
    Bài viết
    25
    Like
    0
    Thanked 0 Times in 0 Posts
    Thuật toán tìm kiếm chuỗi Knuth-Morris-Pratt (KMP) hiệu quả !
    Bài này xét tất cả chuỗi độ dài Y(M) trong X(N) sau đó tính ORD, xem giá trị ORD nào xuất hiện nhièu lần nhất thì chọn cái đó. Độ phức tạp O ( (M-N+1)*N )

  9. #9
    Tham gia
    27-05-2008
    Location
    bình định
    Bài viết
    692
    Like
    0
    Thanked 10 Times in 6 Posts
    e vẫn chưa hiểu lắm ,
    cách làm của e:
    nhận xét thấy rằng khi cộng ord vào các kí tự thì độ chênh lệch ord giữa 2 kí tự bạn đầu vẫn ko đổi
    vd: AB cộng 2 vào ord -> CD , độ chênh lệch ord giữa C & D = giữa A & B

    làm thử : với X=ABCDEFGH
    Y= LMN
    ta có mảng A với độ lớn length(X)-1 (A[i] là chênh lệch ord giữa X[i] và X[i+1]
    A= 1,1,1,1,1,1,1
    mảng B tương tự với xâu Y
    B=1,1
    như vậy chỉ cần tìm mảng B trong mảng A . + 1 chút xử lý là dc.
    bài này chỉ cần O(length(X)) là dc (dùng lùa bò vào chuồng)
    -> có thể tìm dc t luôn

  10. #10
    Tham gia
    05-06-2009
    Location
    Tuyên Quang
    Bài viết
    656
    Like
    0
    Thanked 4 Times in 3 Posts
    Hay nhỉ. Thế mà mình không nghĩ ra. Thật là gà

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • 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
  •