Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Rust] HRTB for<'a> + Box<dyn> registry — apply chuỗi biến đổi

    Khai báo type alias type StrFn = Box<dyn for<'a> Fn(&'a str) -> &'a str>;. Viết hàm fn apply_chain<'b>(s: &'b str, fns: &[StrFn]) -> &'b str áp dụng tuần tự mọi hàm trong slice fns lên s và trả về &str cuối cùng. Đọc một chuỗi s (không khoảng trắng), rồi xây registry gồm 3 hàm: Box::new(|t: &str| t.trim_start_matches('a')), Box::new(|t: &str| t.trim_end_matches('z')), Box::new(|t: &str| if t.len() >= 2 { &t[1..] } else { t }). In apply_chain(&s, &fns).

    • Định dạng đầu vào:

      Một dòng chuỗi (không khoảng trắng).

    • Ràng buộc đầu vào:

      1 <= |s| <= 100

    • Định dạng đầu ra:

      Chuỗi sau khi (1) cắt mọi 'a' đầu, (2) cắt mọi 'z' cuối, (3) bỏ ký tự đầu nếu len>=2.

    Ví dụ:

    Đầu vào:

    aaahellozzz
    

    Đầu ra:

    ello

    Giải thích:

    trim a -> hellozzz; trim z -> hello; bỏ ký tự đầu -> ello

    Đang tải editor...