在数组中搜索字符串的所有术
Search all ocurrences of string in array
,假设我有一个字符串数组 a 的大小 n ,而 a 是例如:,例如:
0: abcaoeir
1: acda
2: acdttt
3: acdy
4: degaeiour
5: utsss
给定一个字符串 s 的大小 m ,我如何找到第一个索引 i 和最后一个索引 J a 的strong>:
s 是 a [i] 的前缀,no k<i 将有 s 作为 a [k]
的前缀S 是 a [J] 的前缀,no k> k> i 将具有 s 作为 a [k]
的前缀
也就是说, i 是第一个索引,其中 s 是前缀,而 J 是最后一个。
例如,给定 a 和 s =" acd" :
0: abcaoeir
1: acda [this will be the i]
2: acdttt
3: acdy [this will be the j]
4: degaeiour
5: utsss
我如何找到这样的 i 和 j in o(m lg(n)) time?
在排序阵列时,您可以使用 std::lower_bound
查找序列的开始(这是您的lg(n)),然后线性地向前搜索以查找序列的末尾(那就是您的M)。
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组