Java 在重复字符串中查找计数

Java 在重复字符串中查找计数,java,arrays,algorithm,Java,Arrays,Algorithm,我有一个字符串,我需要重复至少n次。然后,对于给定数量的“n”,我需要计算字母“a”的出现次数 例如 字符串-'aab' n-10 我需要迭代字符串“aab”,以便总计数至少等于“n”,然后我需要找到“a”的计数 请看这里的问题 publicstaticvoidmain(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); 字符串s=in.next(); 长n=in.nextLong(); 长计数=0; 字符串测试=”; 对于(长i=0;i只需使用初始字符串计数并乘以n.按照以下步骤操作:

我有一个字符串,我需要重复至少n次。然后,对于给定数量的“n”,我需要计算字母“a”的出现次数 例如 字符串-'aab' n-10 我需要迭代字符串“aab”,以便总计数至少等于“n”,然后我需要找到“a”的计数
请看这里的问题

publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
字符串s=in.next();
长n=in.nextLong();
长计数=0;
字符串测试=”;

对于(长i=0;i只需使用初始字符串计数并乘以n.

按照以下步骤操作:

  • 查找字符串的长度(
    len
    )。[例如:“aba”的长度为3]

  • 查找
    s
    =(int)(n/len)和
    rem
    =n%len的值

  • 查找原始字符串中
    a
    出现的次数,例如
    k
    。根据示例,它是2。[aba中的2次]


  • < > > >从“代码> > i=0</代码>到<代码>的字符串中重复。请注意这里的问题。我不认为HACKERANK的观点是为了让你把问题撇在别人身上。你应该考虑自己解决这个问题。t重复的次数。我不认为
    test
    对于获得答案是必要的,但正如你所知,你永远不应该在循环中使用串联。它的成本非常高而且速度非常慢。相反,使用a.ok。但是在第二个测试用例中,字符串是“a”,n是1000000000。超时可能是因为串联的速度太慢nation处于循环中。线程“main”java.lang.OutOfMemoryError中出现异常:java堆空间。这是我使用StringBuilder时出现的错误。我将给您一个提示:使用
    n/s.length
    n%s.length
    确定字符串在
    n
    字符中出现的次数。不要使用
    test
    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);
    }