【发布时间】:2013-09-08 03:33:41
【问题描述】:
我正在尝试在字符串P 中查找字符串T 的出现并返回T 在P 中的位置。
这是我尝试过的,但不正确:
int bruteForce(string T, string P) {
int n, m;
for (int i = 0; i <= n-m; i++) {
int j = 0;
while (j < m && T[i+j] == P[j]) {
if (j == m) {
return i;
}
return 0;
}
}
}
我做错了什么?我错过了什么?
【问题讨论】:
-
首先,您使用了从未初始化过的变量
n和m。 -
坏了,
n,m没有初始化。您的代码将调用 UB -
您是否尝试实现
T.find(P)? -
你正在复制你被调用的字符串。您可能想要“const string& T, const string& P)”,但您可能应该使用比“T”和“P”更好的名称
标签: c++ string algorithm implementation brute-force