← back to the blog


Hacker Rank Repeated String Solution with JavaScript and comments

Posted on August 13th, 2020 in JavaScript by George

 

I have added the solution with the explanation in code comments for the Repeated String problem.

 

function repeatedString(s, n) {
  let aInString;

  //Spread the string into charachers and find out the number of "a"
  //Store it in aInString

  aInString = s.split("").filter((i) => { return i === "a" }).length;

  // We check to make sure we are dealing with a string 
  //The string has content and n is a number
  // the string length and number have to be between the given constraints
  if (
    (typeof s === "string" && s.length >= 1 && s.length <= 100) &&
    (typeof n === "number" && n >= 0 && n <= 1000000000000)
  ) {
    //Divide n to the length of the input string as integer
    // Find out how many strings s inside n by length
    let stringLengthInN = parseInt(n / s.length, 0);

    //Multiply part1 to the number of a inside of our input string
    // part 1 multiplied to the number of 'a' in the initial string
    let part1 = stringLengthInN * aInString;

    //Handle the reminder
    let reminderString = s.slice(0, (n % s.length));

    //Get the number of "a" from the reminder portion of string
    let reminder = reminderString.split('').filter(i => i === "a").length;

    //Add the integer part1 to the integer found in reminder
    return (part1 + reminder);
  }

  return n;
}

console.log("result", repeatedString('zaxsda', 45345345345));

 

Thank you.