HackerRank Repeated String Solution

Hello Programmers, In this post, you will know how to solve the HackerRank Repeated String Solution. This problem is a part of the HackerRank Algorithms Series.

HackerRank Repeated String Solution
HackerRank Repeated String Solution

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.

HackerRank Repeated String Solution

Task

There is a string, s, of lowercase English letters that is repeated infinitely many times. Given an integer, n, find and print the number of letter a‘s in the first n letters of the infinite string.

Example
s = ‘abcac’
n = 10

The substring we consider is abcacabcac, the first 10 characters of the infinite string. There are 4 occurrences of a in the substring.

Function Description

Complete the repeatedString function in the editor below.

repeatedString has the following parameter(s):

  • s: a string to repeat
  • n: the number of characters to consider

Returns

  • int: the frequency of a in the substring

Input Format

The first line contains a single string, s.
The second line contains an integer, n.

Constraints

  • 1 <= |s| <= 100
  • 1 <= n <= 1012
  • For 25% of the test cases, n <= 106.

Sample Input

Sample Input 0

aba
10

Sample Output 0

7

Explanation 0

The first n = 10 letters of the infinite string are abaabaabaa. Because there are 7 as, we return 7.

Sample Input 1

a
1000000000000

Sample Output 1

1000000000000

Explanation 1

Because all of the first n = 1000000000000 letters of the infinite string are a, we return 1000000000000.

HackerRank Repeated String Solutions

Repeated String 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(){
    char* s = (char *)malloc(512000 * sizeof(char));
    scanf("%s",s);
    long n,o,p,i; 
    scanf("%ld",&n);
    o=0;
    for(i=0;s[i]!='\0';i++)
        {
        if(s[i]=='a')
            o++;
    }
    p=n%i;
    n=n/i;
    o=o*n;
    n=0;
    for(i=0;i<p;i++)
        if(s[i]=='a')
        n++;
        printf("%ld",o+n);
    return 0;
}

Repeated String Solution in Cpp

#include <iostream>
#include <cstdio>
#include <string.h>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <sstream>
#include <cmath>
#include <ctime>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<string> vs;
typedef vector< vector<int> > vvi;
typedef vector<ll> vl;
typedef vector< vector<ll> > vvl;
#define forn(i, n) for (int i = 0; i < (int)(n); i++)
#define forv(i, v) forn(i, v.size())
#define all(v) v.begin(), v.end()
#define mp make_pair
#define pb push_back
int main() {
#ifdef NEREVAR_PROJECT
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    string s;
    ll n;
    cin >> s >> n;
    ll ca = 0;
    forv(i, s) if (s[i] == 'a') ca++;
    int m = (int)s.size();
    ll k = n / m;
    int r = n % m;
    ll ans = k * ca;
    forn(i, r) if (s[i] == 'a') ans++;
    cout << ans << endl;
    return 0;
}

Repeated String 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);
        String s = in.next();
        long n = in.nextLong();
        long num = n/s.length();
        long rem = n%s.length();
        long ans = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i)=='a') {
                ans += num;
                if (i < rem)
                    ans++;
            }
        }
        System.out.println(ans);
    }
}
Ezoicreport this ad

Repeated String Solution in Python

#!/bin/python
import sys
s = raw_input().strip()
n = long(raw_input().strip())
cnt=0
cnt1=0
L=len(s)
k=n%L
for i in range(L):
    if s[i]=='a':
        cnt+=1
        if i<k: cnt1+=1
print cnt*(n/L)+cnt1

Repeated String Solution using JavaScript

process.stdin.resume();
process.stdin.setEncoding('ascii');
var input_stdin = "";
var input_stdin_array = "";
var input_currentline = 0;
process.stdin.on('data', function (data) {
    input_stdin += data;
});
process.stdin.on('end', function () {
    input_stdin_array = input_stdin.split("\n");
    main();    
});
function readLine() {
    return input_stdin_array[input_currentline++];
}
/////////////// ignore above this line ////////////////////
function main() {
    var s = readLine().split("");
    var n = parseInt(readLine());
    
    var stringSize = s.length;
    var a = s.filter((a) => a == 'a').length;
    
    var repeat = Math.floor(n/stringSize);
    
    var left = n-(repeat*stringSize);
    
    
    
    console.log((repeat*a) + s.filter((a,i) => a == 'a' && i < left).length);

Repeated String Solution in Scala

object Solution {
    def main(args: Array[String]) {
        val sc = new java.util.Scanner (System.in);
        val s = sc.next();
        val n = sc.nextLong();
        
        if (n <= s.length) {
            println(s.take(n.toInt).count(c => c == 'a'))
        }
        else {
            val noOfA = s.count(c => c == 'a')
            val k = n % s.length
            val x = n/s.length
            val ans = noOfA * x + s.take(k.toInt).count(c => c == 'a')
            println(ans)
        }
    }
}

Repeated String Solution in Pascal

(* Enter your code here. Read input from STDIN. Print output to STDOUT *)
uses math;
var  n,m,ans:int64;
     i:longint;
     s:ansistring;
 begin
 readln(s);
 readln(n);
 m:=length(s);
 for i:=1 to length(s) do
  if (s[i]='a') then inc(ans);
  ans:=(n div m)*ans;
  for i:=1 to n mod m do
  if s[i]='a' then inc(ans);
writeln(ans);
 end.

Disclaimer: This problem (Repeated String) is generated by HackerRank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.

Next: HackerRank Jumping on the Clouds Solution

Sharing Is Caring

Leave a Comment

Ezoicreport this ad