私は少なくとも「n」回繰り返す必要がある文字列を持っています。次に、 'n'の文字数に対して文字 'a'の出現を数える必要がある たとえば、 文字列 - 'aab' n - 10 文字列 'aab'を繰り返して総計が少なくとも等しい「n」をして、私は「」
の数を見つける必要があり、ここで質問https://www.hackerrank.com/challenges/repeated-string繰り返し文字列で数を見つける
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
long n = in.nextLong();
long count = 0;
String test = "";
for(long i =0;i <= n; i++)
{
test = test.concat(s);
}
long len = test.length();
for (int i = 0; i < len; i++)
{
if(i < n)
{
if((int)test.charAt(i) == 97)
{
count ++;
}
}
else
{
break;
}
}
System.out.println(count);
}
入力が小さい場合には、この作品をご覧ください。次のケースでは、タイムアウトのためにTerminatedというエラーが出されます。 文字列 - 'a' n - 10000000000000
誰かが私を助けることができますか?事前に感謝します
である私は、 'test'が答えを得るために必要であるが、ちょうどので、あなたが知っている、あなたがループ内で連結したものを使用しないでくださいとは思いません。信じられないほど高価で遅いです。代わりに、['StringBuilder'](https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html)を使用してください。 – 4castle
stringが 'a'でnが100000000000の場合の第2のテストケースでは失敗します。 – chan
タイムアウトはおそらくループ内での遅い連結のためです。 – 4castle