Hackerrank - String repeat

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

Example

The substring we consider is , the first  characters of the infinite string. There are  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, .
The second line contains an integer, .

Constraints

  • For  of the test cases, .

Sample Input

Sample Input 0

aba
10

Sample Output 0

7

Explanation 0
The first  letters of the infinite string are abaabaabaa. Because there are  a's, we return .

Sample Input 1

a
1000000000000

Sample Output 1

1000000000000

Explanation 1
Because all of the first  letters of the infinite string are a, we return import java.io.*;

import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;

class Result {

public static long repeatedString(String s, long n) {
long count = 0;
for (Character letter: s.toCharArray()) {
if (letter == 'a') {
count++;
}
}
count = count * (n/s.length());

String extra = "";

for (int i = 0; i < n%s.length(); i++) {
extra = s.charAt(i)+extra;
}

for (Character letter: extra.toCharArray()) {
if (letter == 'a') {
count++;
}
}
return count;
}

}

class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(
new OutputStreamWriter(System.out));

String s = bufferedReader.readLine();

long n = Long.parseLong(bufferedReader.readLine().trim());

long result = Result.repeatedString(s, n);

bufferedWriter.write(String.valueOf(result));
bufferedWriter.newLine();

bufferedReader.close();
bufferedWriter.close();
}
}

.





Comments

Popular posts from this blog

Hackerrank - Quicksort 2 - Sorting

Hackerrank - Day of the Programmer

Hackerrank - UNIQUE ARMSTRONG NUMBER