[Series] Mỗi tuần một bài toán Hackerrank (số thứ 2)

Bài toán : Designer PDF Viewer
Link: https://www.hackerrank.com/challenges/designer-pdf-viewer/problem
Mức độ : Easy
Tóm tắt bài toán: Tính size của highlighted word
Solution:
Idea: Dễ thấy weight = số chữ của string
Còn lại phải tìm maxHeight của từng Char. Tôi thấy input đầu vào cho 1 mảng h dãy các số đại diện cho độ cao của từng Char từ a-z theo bảng mã ascii. Vấn đề bây giờ ta phải chuyển sao cho từng Char trong String đó tương ứng với index trong mảng h. Ngồi nghĩ 1 lúc chợt nghĩ ra thực ra nó khá đơn giản. Ta chỉ cần duyệt mảng string rồi trừ từng Char cho kí tự ‘a’ ta sẽ có được đúng với index trong mảng h. Từ đó ta có thể tìm được maxHeight. And Done!
Code tham khảo : (use C++)

int designerPdfViewer(vector<int> h, string word) {
    int maxHeight=-1;
    for(int i=0;i<word.size();i++){
        word[i]-='a';
        if(maxHeight<h[word[i]])
            maxHeight=h[word[i]];
    }
    int result = maxHeight*word.size();
    return result;
}

Đấy là cách mình nghĩ. Ai còn cách hay hơn có thể comment chỉ mình. 😀
Conal Dev

1 comments On [Series] Mỗi tuần một bài toán Hackerrank (số thứ 2)

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook