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.
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 wide.
Function Description
Complete the designerPdfViewer function in the editor below.
designerPdfViewer has the following parameter(s):
- int h[26]: the heights of each letter
- string word: a string
Returns
- int: the size of the highlighted area
Input Format
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.
Constraints
- 1<=h[?]<=7, where is an English lowercase letter.
- word contains no more than 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
9
Designer PDF Viewer HackerRank Solution in C
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int main(){
int n=26;
int *h = malloc(sizeof(int) * n);
for(int h_i = 0; h_i < n; h_i++){
scanf("%d",&h[h_i]);
}
char* word = (char *)malloc(512000 * sizeof(char));
scanf("%s",word);
int l=strlen(word);
int i;
int max=0;
for(i=0;i<l;i++)
{
if(h[(int)word[i]-'a']>max)
max=h[(int)word[i]-'a'];
}
printf("%d",max*l);
return 0;
}
Designer PDF Viewer HackerRank Solution in C++
#include <bits/stdc++.h>
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;
}
Designer PDF Viewer HackerRank Solution in Java
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));
}
}
Designer PDF Viewer HackerRank Solution in Python
#!/bin/python
import sys
h = map(int,raw_input().strip().split(' '))
word = raw_input().strip()
hi = 0
for c in word:
hi = max(hi, h[ord(c)-ord('a')])
print hi * len(word)
Designer PDF Viewer HackerRank Solution in C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Solution {
static void Main(String[] args) {
string[] h_temp = Console.ReadLine().Split(' ');
int[] h = Array.ConvertAll(h_temp,Int32.Parse);
string word = Console.ReadLine();
Console.Out.WriteLine(word.ToCharArray().Max(ch => h[ch - 'a']) * word.Length);
}
}
Attempt – HackerRank Challenge
Link – https://www.hackerrank.com/challenges/designer-pdf-viewer/
Next HackerRank Challenge Solution
Link – https://exploringbits.com/utopian-tree-hackerrank-solution/
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.