【问题标题】:Brute force: count number of sub strings in a string array蛮力:计算字符串数组中子字符串的数量
【发布时间】:2016-05-24 18:12:31
【问题描述】:

我应该做的是创建一个算法来计算一段文本中子字符串的数量,其中子字符串可以是字母 B 后跟 C 或 C 后跟 B。我不知道该怎么做,但我试了一下,得出了下面的结果。我想知道我是否做得对。

int substrCount(String S[0...n-1]){
    int count = 0;
    for (int i = 0; i<=n-2; i++) {
        for (int j=i+1; j<i+2; j++) {
            if ((S[i] == 'B' && S[j] == 'C' ) || (S[i] == 'C' && S[j] == 'B')) {
                count = count + 1;
            }
        }
    }
}

我现在将忽略它是否包含小写或大写。我还需要找到我认为它是 O(n^(2)) 的算法的复杂性。我做对了吗?如果是这样,我可以提高效率吗?

【问题讨论】:

    标签: java arrays string for-loop brute-force


    【解决方案1】:

    这对我很有效

    static int substrCount( String str) {
        int count=0;
        for (int i=0; i<str.length()-1; i++)
        {
            boolean bc = (str.charAt(i) == 'B' && str.charAt(i+1) == 'C');
            boolean cb = (str.charAt(i) == 'C' && str.charAt(i+1) == 'B');
            if (bc || cb) {
                count++;
            }
        } 
        return count;
    }
    

    您只需将字符串中的字符序列循环一次即可获得所需的结果。检查这两个字符是否等于“BC”或“CB”并将一个索引向前移动到字符串的末尾。

    输出示例:

    "ACBAA" gives result 1
    "ABCBA" gives result 2
    "BCBCB" gives result 4
    "BBBBB" gives result 0
    

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 2018-07-23
      • 1970-01-01
      • 2018-04-20
      相关资源
      最近更新 更多