在重复的字符串中查找Count

时间:2016-09-20 00:35:31

标签: java arrays algorithm

我有一个字符串,我需要至少重复' n'次数。那么对于给定数量的' n'我需要计算字母' a' 例如 字符串 - ' aab' n - 10 我需要迭代字符串' aab'所以总计数应该至少等于' n'然后我需要找到' a'
的数量 请在此处查看问题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);
} 

当输入很小时,这是有效的。对于以下情况,它会显示由于超时而终止的错误。 字符串 - &#39; a&#39; n - 10000000000000

有人可以帮帮我吗?提前致谢

2 个答案:

答案 0 :(得分:1)

使用初始字符串计数并乘以n。

答案 1 :(得分:0)

请按照以下步骤操作:

  1. 查找字符串的长度(len)。 [例如:&#34; aba&#34;长度为3]

  2. 找到s =(int)(n / len)和rem = n%len

  3. 的值
  4. 查找原始字符串a出现的次数,例如k。根据示例,它是2. [2&#34; aba&#34; ]

  5. 重复从i=0i<rem的字符串,找出a出现的次数,比如p

  6. 您的答案是k*s + p