自定义indexOf没有String方法

时间:2014-03-11 20:56:56

标签: java testing

我创建了自己的indexOf函数。我想知道是否有人可以帮助我找到一种方法来提高效率。我正在练习面试,所以问题是我不能使用任何String方法。我相信这个方法的运行时是O(n ^ 2),空间为O(n)。如果我错了,请纠正我。

另外,我想确保程序安全正确地运行,这是唯一可以考虑长度比较的测试用例。

代码:

public static int myIndexOf(char[] str, char[] substr) {
    int len = str.length;
    int sublen = substr.length;
    int count = 0;
            if (sublen > len) {
                return -1;
            }
    for (int i = 0; i < len - sublen + 1; i++) {
        for (int j = 0; j < sublen; j++) {
            if (str[j+i] == substr[j]) {
                count++;
                if (count == sublen) {
                    return i;
                }
            } else {
                count = 0;
                break;
            }
        }
    }
    return -1;
}

1 个答案:

答案 0 :(得分:1)

尝试使用字符串搜索算法: http://www-igm.univ-mlv.fr/~lecroq/string/

这里有一种测试实现的方法: http://junit.org/