Skip to main content

Designer PDF Viewer - HackerRank Problems

Difficulty: EASY
Problem :

The objective here is to find the size of the highlighted area, and we are given the size's of all the alphabets, we have to find the largest alphabet in the highlighted word and then calculate the size of the rectangle so if the tallest character is 3 then the size of the box will be 3 * number of characters given. Visual representation of the selection :


abc def ghij


Inputs

  1. An array with the sizes of all alphabets a-z in order.
  2. A String of highlighted words.


Important points to note

  • The array which holds the height of each character in ascending order

    which means the arrays 0th index will have the height of a 1st index will have the height of b and so on and so forth in the end the hight of z will be there so it's easy to locate each character.

  • A String with the highlighted word.

    This means we have got the characters inside the rectangle, all we have to find is the tallest one and half our problem is solved, here we have some knowledge of ASCII representation of characters if not I recommend you go through first and then join again.

  • All the alphabets inside the String are lower case.

    This means the ASCII values of the characters will start from 97 so if we decrement this value from the characters of the string we will get their index.

  • Only the tallest matter to us

    With the value from the array's index, we need only the tallest in the range of our characters inside the string, so we need only the highest value. for example, if our String is ="abc" and the array's values are{5,3,1,9..} we take only 5 coz it's the tallest of our string which is at index 0.

  • We need to return the size of the rectangle.

    Once we get the tallest character then we can multiply it by the length of the given String.

Algorithm

  • Initialize a variable tallest to zero
  • Loop through the character inside the given string
  • Inside the loop Initialize a variable index
  • Set the value of the index to the value - 97 (here value is the current character)
  • Compare the value from the ArrayList.get(index) to tallest
  • Update tallest if the value is greater.
  • Return tallest multiplied words length after the loop.

Below is the code implementation.

public static int designerPdfViewer(List <Integer> h, String word) {
int tallest = 0;

for (char c : word.toCharArray()) {
int index = c - 97;
if (h.get(index) > tallest)
tallest = h.get(index);
}

return tallest * word.length();
}

Comments

Popular posts from this blog

Implementing In-app and pre-locale language selection in Android

Modern Android App Architecture One of the essential features for a globalized app is the ability to provide users with the option to choose their preferred language within the application. In this blog post, we will guide you through the process of implementing in-app language selection in an Android app. Step 1: Create Locale String Resource Create a string resource file for each respective locale by navigating to res > new > Android Resource File . Select Locale and create a string.xml file. Copy and paste the translations of your app content into these files. Step 2: Configure Locale Preferences In the res/xml folder, create a new file called locales_config.xml and specify the locales of your choice. for example look at the following code: <?xml version="1.0" encoding="utf-8"?> <locale-config xmlns:android="http://schemas.android.com/apk/res/android"> <locale andro...

Chocolate Feast - Problem Solving - Hacker Rank Solution.

The expectation is to find the total number of choclate one can consume by taking full advantage of the offer, Here there are 3 inputs n which holds the value of initial amount of money for buying choclate, c is the cost price of each candy if paid by cash and m is the exchange rate for the candy. Inputs n Initial cash to buy candy. c Coast of each candy if paid by cas.h m Exchange rate for a new candy in offer. The initial count of choclate will be the cash / coast and the wrappers in hand will be the same value of choclate, and from there we loop through until the wrap count is less than the exchange rate, inside the loop the choclate count will still hold the same fourmula as before but divided with exchange rate. The wrap count is the tricky part... the wrap will be wrap/ exchange rate(the no. choclate) + the remainder of this division(THIS IS VERY IMPORTANT) because for example if the count of wrapper is 3 and the exchange rate is 2 you can only buy 1 c...

Search Textfield with options and clear button ideal for app TopBar- Jetpack Compose Component

In this blog post, we'll explore a simple yet effective implementation of a search bar in Jetpack Compose. The provided SearchTextField composable offers a basic text field with a placeholder, suitable for building the app top bar. Screen Shot of the Component from my Jot-app The following code can be used to your project directly and it should work as expected, the idea was to have a search bar for a top app which can also hst the buttons on either ends,do check the code below If you have any suggestions or improvements for the code, let's have a conversation below. Your feedback is valuable to me