Hello coders, today we are going to solve Designer PDF Viewer HackerRank Solution which is a Part of HackerRank Algorithm Series.
Table of Contents Toggle
When a contiguous block of text is selected in a PDF viewer, the selection is highlighted with a blue rectangle. In this PDF viewer, each word is highlighted independently. For example:
There is a list of 26 character heights aligned by index to their letters. For example, ‘a’ is at index 0 and ‘z’ is at index 25. There will also be a string. Using the letter heights given, determine the area of the rectangle highlight in mm 2 assuming all letters are 1mm wide.
Example
h = [1, 3, 1, 3, 1, 4, 1, 3, 2, 5, 5, 5, 5, 1, 1, 5, 5, 1, 5, 2, 5, 5, 5, 5, 5, 5] word =’torn‘
The heights are t = 2, o = 1, r = 1 and n = 1. The tallest letter is 2 high and there are 4 letters. The hightlighted area will be 2*4 = 8mm 2 so the answer is 8.
Function Description
Complete the designerPdfViewer function in the editor below.
designerPdfViewer has the following parameter(s):
Returns
The first line contains 26 space-separated integers describing the respective heights of each consecutive lowercase English letter, ascii[a-z].
The second line contains a single word consisting of lowercase English alphabetic letters.
Sample Input 0
1 3 1 3 1 4 1 3 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 abc
Sample Output 0
Explanation 0
We are highlighting the word abc :
Letter heights are a = 1, b = 3 and c = 1. The tallest letter, b , is 3mm high. The selection area for this word is
3 * 1mm * 3mm = 9mm 2 .
Note: Recall that the width of each character is 1mm.
Sample Input 1
1 3 1 3 1 4 1 3 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 7 zaba
Sample Output 1
Explanation 1
The tallest letter in zaba is z at 7mm. The selection area for this word is 4 x 1mm x 7mm = 28mm 2 .
#include using namespace std; int a[42]; char s[1231212]; int main() < for (int i = 0; i < 26; i++) < scanf("%d", a + i); >scanf("%s", s); int h = 0; int w = 0; for (int i = 0; s[i]; i++) < w++; h = max(h, a[s[i] - 'a']); >printf("%d\n", h * w); return 0; >
import sys h = [int(h_temp) for h_temp in input().strip().split(' ')] word = input().strip() max_height = 0 for i in range (len(word)): num = ord(word[i])-97 if (h[num] >= max_height): max_height = h[num] area = len(word)*max_height print(area)
import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution < public static void main(String[] args) < Scanner in = new Scanner(System.in); int n = 26; int h[] = new int[n]; for(int h_i=0; h_i < n; h_i++)< h[h_i] = in.nextInt(); >String word = in.next(); int mx = 0; for (int i = 0; i < word.length(); i++) < int f = h[(int) (word.charAt(i) - 'a')]; if (f >mx) < mx = f; >> System.out.println((word.length() * mx)); > >
Disclaimer: The above Problem (Designer PDF Viewer) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.